(herald "Envelope Protocol, location-based version" (check-nonces)
  (bound 30) (limit 6000))

(comment "CPSA 4.2.3")
(comment "All input read from sync_locn_envelope_no_auth.scm")
(comment "Step count limited to 6000")
(comment "Strand count bounded at 30")
(comment "Nonces checked first")

(defprotocol envelope basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false)))))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (k aik akey) (tpm tpmconf chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig v n)
  (conf tpmconf)
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 0)
  (unrealized (0 0) (1 3))
  (preskeleton)
  (origs (v (1 4)) (n (1 1)))
  (comment "Not a skeleton"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (k aik akey) (tpm tpmconf chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((1 4) (0 0)))
  (non-orig aik)
  (uniq-orig v n)
  (conf tpmconf)
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 1)
  (parent 0)
  (unrealized (1 3))
  (origs (v (1 4)) (n (1 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik) (1 3))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
  (label 2)
  (parent 1)
  (unrealized (0 0) (2 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 3)
  (parent 2)
  (unrealized (0 0) (2 0) (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (displaced 3 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
  (label 4)
  (parent 2)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 5)
  (parent 2)
  (unrealized (0 0) (3 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (3 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 6)
  (parent 3)
  (unrealized (0 0) (2 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg) (pcr-id nonce pcr-id-0 text) (v n data)
    (pt pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-0) (pt pt) (k k) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 current-value aik-0))
      (load pcr (cat pt current-value)) (send v)))
  (label 7)
  (parent 4)
  (unrealized (3 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 8)
  (parent 5)
  (unrealized (0 0) (3 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 9)
  (parent 5)
  (unrealized (0 0) (4 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 10)
  (parent 6)
  (unrealized (0 0) (1 0) (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (genStV (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 4 2 tpm-create-key 2)
    (enc "created" k pcr-id-0 current-value aik-0) (3 1))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
  (label 11)
  (parent 7)
  (unrealized (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (pt pt-0 pval) (k aik akey)
    (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce v n pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-0 pcr-id) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 12)
  (parent 8)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 13)
  (parent 10)
  (unrealized (0 0) (1 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 14)
  (parent 10)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 5 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 15)
  (parent 10)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 16)
  (parent 10)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (3 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
  (label 17)
  (parent 11)
  (unrealized (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (5 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 18)
  (parent 12)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0))))
  (label 19)
  (parent 12)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce text) (v n data) (pt pt-0 pval) (k aik akey)
    (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce v n pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 20)
  (parent 12)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 21)
  (parent 13)
  (unrealized (0 0) (1 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 22)
  (parent 14)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 23)
  (parent 15)
  (unrealized (0 0) (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 24)
  (parent 16)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 25)
  (parent 16)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 26)
  (parent 16)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 27)
  (parent 17)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0))))
  (label 28)
  (parent 19)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 29)
  (parent 22)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 30)
  (parent 23)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 31)
  (parent 23)
  (unrealized (0 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 32)
  (parent 23)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 33)
  (parent 23)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 34)
  (parent 23)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 35)
  (parent 24)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 36)
  (parent 24)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 37)
  (parent 24)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 38)
  (parent 27)
  (unrealized (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-1) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-1 current-value)) (send v)))
  (label 39)
  (parent 28)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 40)
  (parent 29)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-0) (tpm tpm-0)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-0))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 41)
  (parent 30)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (2 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 42)
  (parent 31)
  (unrealized (0 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 43)
  (parent 32)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 3 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 44)
  (parent 33)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 45)
  (parent 33)
  (unrealized (0 0) (5 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 46)
  (parent 33)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 47)
  (parent 33)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 48)
  (parent 34)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 49)
  (parent 34)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 50)
  (parent 34)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 51)
  (parent 36)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 52)
  (parent 38)
  (unrealized (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v)))
  (label 53)
  (parent 39)
  (unrealized (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 54)
  (parent 40)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-1 (3 0)) (pt-0 (3 3)) (k (2 1)) (nonce-0 (4 0))
    (pt (4 3)) (v (1 4)) (n (1 1))))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0))
    ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 55)
  (parent 40)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 6 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-0) (5 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 56)
  (parent 41)
  (unrealized (5 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 57)
  (parent 43)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 58)
  (parent 44)
  (unrealized (0 0) (5 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 59)
  (parent 44)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 60)
  (parent 44)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 61)
  (parent 44)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 62)
  (parent 45)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 63)
  (parent 45)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 64)
  (parent 46)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 65)
  (parent 47)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 66)
  (parent 47)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 67)
  (parent 47)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 68)
  (parent 48)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 69)
  (parent 48)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 70)
  (parent 48)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 71)
  (parent 51)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 72)
  (parent 52)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (5 0)) (pt-0 (5 3)) (nonce-0 (4 0)) (pt (4 3)) (k (2 1))
    (n (1 1)) (v (1 4))))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 73)
  (parent 52)
  (seen 80 82)
  (unrealized (2 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 74)
  (parent 52)
  (unrealized (2 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 75)
  (parent 52)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 76)
  (parent 52)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0))
    ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 77)
  (parent 53)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 78)
  (parent 55)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (k (2 1)) (nonce-1 (3 0)) (pt-0 (3 3)) (v (1 4)) (n (1 1))))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 79)
  (parent 55)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 6 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 80)
  (parent 56)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 81)
  (parent 56)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 82)
  (parent 57)
  (seen 54)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 83)
  (parent 57)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 84)
  (parent 58)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 85)
  (parent 59)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 86)
  (parent 60)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 87)
  (parent 61)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 88)
  (parent 61)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 89)
  (parent 61)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 90)
  (parent 62)
  (unrealized (0 0) (5 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 91)
  (parent 62)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 92)
  (parent 62)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 93)
  (parent 62)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 94)
  (parent 64)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 95)
  (parent 65)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 96)
  (parent 65)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 97)
  (parent 65)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 98)
  (parent 69)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 99)
  (parent 71)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 100)
  (parent 73)
  (unrealized (2 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 101)
  (parent 73)
  (seen 105 130)
  (unrealized (6 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 102)
  (parent 73)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 103)
  (parent 74)
  (seen 115 117 136)
  (unrealized (2 0))
  (comment "6 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 104)
  (parent 74)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 105)
  (parent 75)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 106)
  (parent 75)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 107)
  (parent 75)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (n (1 1)) (k-0 (6 1)) (nonce (5 0)) (pt-0 (5 3))
    (nonce-0 (4 0)) (pt (4 3)) (k (2 1)) (v (1 4))))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 108)
  (parent 75)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 109)
  (parent 76)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 110)
  (parent 76)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 111)
  (parent 76)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 112)
  (parent 77)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0))
    ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 113)
  (parent 77)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (2 0)) ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 114)
  (parent 80)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 115)
  (parent 81)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (5 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (0 0)) ((6 3) (5 2)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 116)
  (parent 81)
  (unrealized (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 2) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 117)
  (parent 83)
  (seen 78)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 118)
  (parent 83)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 119)
  (parent 85)
  (seen 147)
  (unrealized (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 120)
  (parent 86)
  (seen 148)
  (unrealized (6 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 121)
  (parent 87)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 122)
  (parent 87)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 123)
  (parent 87)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 124)
  (parent 90)
  (unrealized (0 0) (5 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 125)
  (parent 91)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-3) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 126)
  (parent 92)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 127)
  (parent 93)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 128)
  (parent 93)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 129)
  (parent 93)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 130)
  (parent 94)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 131)
  (parent 94)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 132)
  (parent 96)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 133)
  (parent 98)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 134)
  (parent 99)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 135)
  (parent 99)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 136)
  (parent 100)
  (unrealized (2 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 137)
  (parent 100)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 138)
  (parent 101)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 139)
  (parent 101)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 140)
  (parent 102)
  (seen 173)
  (unrealized (6 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 141)
  (parent 102)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 142)
  (parent 102)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 143)
  (parent 103)
  (unrealized (2 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 144)
  (parent 103)
  (seen 150 170)
  (unrealized (7 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 145)
  (parent 103)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 146)
  (parent 105)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 147)
  (parent 105)
  (seen 82)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 148)
  (parent 105)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 149)
  (parent 105)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 150)
  (parent 106)
  (seen 198)
  (unrealized (6 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 151)
  (parent 106)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 152)
  (parent 108)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 153)
  (parent 108)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 154)
  (parent 108)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 155)
  (parent 109)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 156)
  (parent 109)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 157)
  (parent 109)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 3) (0 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 158)
  (parent 112)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (3 0)) (pt-0 (3 3)) (nonce-1 (6 0)) (pt-1 (6 3))
    (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 159)
  (parent 114)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 160)
  (parent 115)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 161)
  (parent 119)
  (seen 205)
  (unrealized (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 162)
  (parent 120)
  (seen 206)
  (unrealized (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 163)
  (parent 122)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 164)
  (parent 125)
  (unrealized (8 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 165)
  (parent 126)
  (unrealized (7 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 166)
  (parent 127)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 167)
  (parent 127)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 168)
  (parent 127)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (2 0)) ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 169)
  (parent 130)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 170)
  (parent 131)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 171)
  (parent 131)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 172)
  (parent 132)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 173)
  (parent 133)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 174)
  (parent 133)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 175)
  (parent 134)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 176)
  (parent 135)
  (seen 112)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 177)
  (parent 135)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-2 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 178)
  (parent 136)
  (seen 80)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 179)
  (parent 136)
  (unrealized (2 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 180)
  (parent 136)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 181)
  (parent 136)
  (seen 82)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 182)
  (parent 136)
  (seen 184 192)
  (unrealized (7 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 183)
  (parent 136)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 184)
  (parent 138)
  (seen 198 217 220)
  (unrealized (6 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 185)
  (parent 138)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 186)
  (parent 139)
  (seen 226)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 187)
  (parent 139)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 188)
  (parent 139)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 189)
  (parent 140)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 190)
  (parent 140)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 191)
  (parent 143)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 192)
  (parent 144)
  (seen 198 218 221)
  (unrealized (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 193)
  (parent 144)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 194)
  (parent 144)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 195)
  (parent 145)
  (seen 229)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 196)
  (parent 145)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 197)
  (parent 145)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 198)
  (parent 146)
  (unrealized (6 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 199)
  (parent 146)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (6 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 200)
  (parent 148)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 201)
  (parent 149)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 202)
  (parent 149)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 203)
  (parent 149)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 204)
  (parent 150)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 205)
  (parent 150)
  (seen 117)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 206)
  (parent 150)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 207)
  (parent 150)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 208)
  (parent 152)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 209)
  (parent 152)
  (seen 156)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 210)
  (parent 152)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 211)
  (parent 156)
  (seen 158)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 212)
  (parent 159)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 213)
  (parent 160)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 214)
  (parent 161)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 215)
  (parent 162)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 216)
  (parent 163)
  (seen 260)
  (unrealized (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 217)
  (parent 164)
  (seen 180)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 218)
  (parent 164)
  (seen 147)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 219)
  (parent 164)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 220)
  (parent 165)
  (seen 258)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 221)
  (parent 165)
  (seen 148)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 222)
  (parent 165)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 223)
  (parent 167)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 224)
  (parent 169)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 225)
  (parent 170)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 226)
  (parent 172)
  (seen 173)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 227)
  (parent 172)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 228)
  (parent 173)
  (seen 175)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 229)
  (parent 174)
  (seen 156)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 230)
  (parent 174)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (2 0))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 231)
  (parent 175)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 232)
  (parent 179)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 233)
  (parent 180)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 234)
  (parent 182)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 235)
  (parent 182)
  (seen 130)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 236)
  (parent 182)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 237)
  (parent 183)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 238)
  (parent 183)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 239)
  (parent 183)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 240)
  (parent 184)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 241)
  (parent 184)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 242)
  (parent 186)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 243)
  (parent 186)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 244)
  (parent 192)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 245)
  (parent 192)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 246)
  (parent 193)
  (seen 270 272 293)
  (unrealized (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 247)
  (parent 193)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 248)
  (parent 194)
  (seen 277)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 249)
  (parent 194)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 250)
  (parent 194)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 251)
  (parent 195)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 252)
  (parent 195)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 253)
  (parent 198)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 254)
  (parent 198)
  (seen 180)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 255)
  (parent 198)
  (seen 181)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 256)
  (parent 198)
  (seen 148)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 257)
  (parent 198)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 258)
  (parent 200)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 259)
  (parent 201)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 260)
  (parent 201)
  (seen 173)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 261)
  (parent 201)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 262)
  (parent 204)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 263)
  (parent 206)
  (seen 225)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 264)
  (parent 207)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 265)
  (parent 207)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 266)
  (parent 207)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 267)
  (parent 212)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 0)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 268)
  (parent 213)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 269)
  (parent 216)
  (seen 308)
  (unrealized (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 3) (0 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 270)
  (parent 219)
  (seen 205)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 271)
  (parent 219)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 272)
  (parent 222)
  (seen 206)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (5 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 273)
  (parent 222)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 2 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 274)
  (parent 223)
  (unrealized (9 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (1 3)) ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 275)
  (parent 224)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 276)
  (parent 225)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 277)
  (parent 227)
  (seen 209)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 278)
  (parent 227)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (1 3))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 279)
  (parent 231)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 280)
  (parent 233)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 281)
  (parent 234)
  (seen 293)
  (unrealized (7 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 282)
  (parent 234)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 283)
  (parent 236)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 284)
  (parent 236)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 285)
  (parent 236)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 286)
  (parent 237)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 1)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 287)
  (parent 237)
  (seen 173)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 288)
  (parent 237)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 289)
  (parent 240)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 290)
  (parent 241)
  (seen 313)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 291)
  (parent 241)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 292)
  (parent 241)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 293)
  (parent 244)
  (unrealized (7 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 294)
  (parent 244)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 295)
  (parent 245)
  (seen 314)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 296)
  (parent 245)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 297)
  (parent 245)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 298)
  (parent 246)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 299)
  (parent 246)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 300)
  (parent 248)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 301)
  (parent 248)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 302)
  (parent 253)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 303)
  (parent 257)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 304)
  (parent 257)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 305)
  (parent 257)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 306)
  (parent 258)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 307)
  (parent 264)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 308)
  (parent 264)
  (seen 229)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 309)
  (parent 264)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (1 3)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 310)
  (parent 267)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (4 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 311)
  (parent 268)
  (seen 72)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 312)
  (parent 269)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 313)
  (parent 274)
  (seen 287)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 314)
  (parent 274)
  (seen 260)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 315)
  (parent 274)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 316)
  (parent 275)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 317)
  (parent 276)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 318)
  (parent 279)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 319)
  (parent 280)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 320)
  (parent 281)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 321)
  (parent 281)
  (seen 217)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 322)
  (parent 281)
  (seen 220)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 323)
  (parent 281)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 324)
  (parent 283)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (9 1)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 325)
  (parent 283)
  (seen 226)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 326)
  (parent 283)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 327)
  (parent 290)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 328)
  (parent 290)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 329)
  (parent 293)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 330)
  (parent 293)
  (seen 254)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 331)
  (parent 293)
  (seen 255)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 332)
  (parent 293)
  (seen 256)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 333)
  (parent 293)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 334)
  (parent 295)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 335)
  (parent 295)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 336)
  (parent 298)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 337)
  (parent 299)
  (seen 345)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 338)
  (parent 299)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 339)
  (parent 299)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 340)
  (parent 303)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 341)
  (parent 303)
  (seen 287)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 342)
  (parent 303)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 343)
  (parent 306)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 344)
  (parent 310)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((4 3) (10 2)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 345)
  (parent 315)
  (seen 308)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (9 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 346)
  (parent 315)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (1 3)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 347)
  (parent 316)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 1)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 348)
  (parent 317)
  (seen 107)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (6 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 349)
  (parent 318)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 350)
  (parent 319)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 351)
  (parent 320)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 352)
  (parent 323)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 353)
  (parent 323)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 354)
  (parent 323)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 355)
  (parent 329)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 356)
  (parent 333)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 357)
  (parent 333)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 358)
  (parent 333)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 359)
  (parent 337)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 360)
  (parent 337)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 361)
  (parent 343)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (5 0)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 362)
  (parent 344)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 363)
  (parent 347)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (6 0))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 364)
  (parent 349)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2)) ((5 3) (6 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((1 2) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 365)
  (parent 350)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 366)
  (parent 352)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (10 1)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 367)
  (parent 352)
  (seen 313)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 368)
  (parent 352)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 369)
  (parent 356)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (10 1)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 370)
  (parent 356)
  (seen 341)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 371)
  (parent 356)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 372)
  (parent 361)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 373)
  (parent 362)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (6 0)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 374)
  (parent 363)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (6 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 375)
  (parent 364)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 376)
  (parent 365)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 377)
  (parent 372)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 378)
  (parent 373)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 379)
  (parent 374)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (6 1))
    ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 380)
  (parent 375)
  (seen 158)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)) ((5 3) (6 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 381)
  (parent 376)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 382)
  (parent 377)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (5 1)) ((3 3) (5 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 1)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 383)
  (parent 378)
  (seen 311)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 384)
  (parent 379)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (3 1)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 385)
  (parent 381)
  (seen 78)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (3 1)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 386)
  (parent 382)
  (seen 263)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (6 1)) ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 387)
  (parent 384)
  (seen 348)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(comment "Nothing left to do")

(defprotocol envelope basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false)))))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 388)
  (unrealized (0 0) (1 3))
  (preskeleton)
  (origs (v (1 4)) (n (1 1)))
  (comment "Not a skeleton"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((1 4) (0 0)))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 389)
  (parent 388)
  (unrealized (0 0) (1 3))
  (origs (v (1 4)) (n (1 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (1 3))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 390)
  (parent 389)
  (unrealized (0 0) (2 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 391)
  (parent 390)
  (unrealized (0 0) (2 0) (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (displaced 3 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 392)
  (parent 390)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 393)
  (parent 390)
  (unrealized (0 0) (3 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (3 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 394)
  (parent 391)
  (unrealized (0 0) (2 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (genStV (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 395)
  (parent 392)
  (unrealized (3 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 396)
  (parent 393)
  (unrealized (0 0) (3 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 397)
  (parent 393)
  (unrealized (0 0) (4 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 398)
  (parent 394)
  (unrealized (0 0) (1 0) (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0))
    ((4 3) (3 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (3 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
  (label 399)
  (parent 395)
  (unrealized (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id-0) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 400)
  (parent 396)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 401)
  (parent 398)
  (unrealized (0 0) (1 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 402)
  (parent 398)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 5 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 403)
  (parent 398)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 404)
  (parent 398)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 405)
  (parent 399)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (5 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 406)
  (parent 400)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 407)
  (parent 400)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 408)
  (parent 400)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 409)
  (parent 401)
  (unrealized (0 0) (1 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 410)
  (parent 402)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 411)
  (parent 403)
  (unrealized (0 0) (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 412)
  (parent 404)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 413)
  (parent 404)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 414)
  (parent 404)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 415)
  (parent 405)
  (unrealized (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 416)
  (parent 407)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 417)
  (parent 410)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 418)
  (parent 411)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 419)
  (parent 411)
  (unrealized (0 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 420)
  (parent 411)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 421)
  (parent 411)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 422)
  (parent 411)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 423)
  (parent 412)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 424)
  (parent 412)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 425)
  (parent 412)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 426)
  (parent 415)
  (unrealized (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 427)
  (parent 416)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 2) (0 0))
    ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 428)
  (parent 417)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 429)
  (parent 418)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (2 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 430)
  (parent 419)
  (unrealized (0 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 431)
  (parent 420)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 3 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 432)
  (parent 421)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 433)
  (parent 421)
  (unrealized (0 0) (5 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 434)
  (parent 421)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 435)
  (parent 421)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 436)
  (parent 422)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 437)
  (parent 422)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 438)
  (parent 422)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 439)
  (parent 424)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 440)
  (parent 426)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (5 0)) (pt-0 (5 3)) (nonce-0 (4 0)) (pt (4 3)) (n (1 1))
    (k (2 1)) (v (1 4))))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 441)
  (parent 426)
  (unrealized (2 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 442)
  (parent 426)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 443)
  (parent 426)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 2) (0 0))
    ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 444)
  (parent 427)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 445)
  (parent 428)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (nonce-1 (3 0)) (pt-0 (3 3)) (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 446)
  (parent 428)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (0 0))
    ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (5 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 447)
  (parent 429)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 448)
  (parent 431)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 449)
  (parent 432)
  (unrealized (0 0) (5 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 450)
  (parent 432)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 451)
  (parent 432)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 452)
  (parent 432)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 453)
  (parent 433)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 454)
  (parent 433)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 455)
  (parent 434)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 456)
  (parent 435)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 457)
  (parent 435)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 458)
  (parent 435)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 459)
  (parent 436)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 460)
  (parent 436)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 461)
  (parent 436)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 462)
  (parent 439)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 463)
  (parent 441)
  (seen 473 475)
  (unrealized (2 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 464)
  (parent 441)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 465)
  (parent 442)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 466)
  (parent 442)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (n (1 1)) (k-0 (6 1)) (nonce (5 0)) (pt-0 (5 3))
    (nonce-0 (4 0)) (pt (4 3)) (k (2 1)) (v (1 4))))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 467)
  (parent 442)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 468)
  (parent 443)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 469)
  (parent 443)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 470)
  (parent 443)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 471)
  (parent 444)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0))
    ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 472)
  (parent 444)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 473)
  (parent 447)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (5 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (0 0)) ((6 3) (5 1)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 474)
  (parent 447)
  (unrealized (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 2) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 475)
  (parent 448)
  (seen 445)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 476)
  (parent 448)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 477)
  (parent 449)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 478)
  (parent 450)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 479)
  (parent 451)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 480)
  (parent 452)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 481)
  (parent 452)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 482)
  (parent 452)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 483)
  (parent 453)
  (unrealized (0 0) (5 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 484)
  (parent 453)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 485)
  (parent 453)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 486)
  (parent 453)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 487)
  (parent 455)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 488)
  (parent 456)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 489)
  (parent 456)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 490)
  (parent 456)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 491)
  (parent 460)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 492)
  (parent 462)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 493)
  (parent 463)
  (unrealized (2 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 494)
  (parent 463)
  (seen 496 517)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 495)
  (parent 463)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 496)
  (parent 465)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 497)
  (parent 465)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 498)
  (parent 467)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 499)
  (parent 467)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 500)
  (parent 467)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 501)
  (parent 468)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 502)
  (parent 468)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 503)
  (parent 468)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 504)
  (parent 471)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (3 0)) (pt-0 (3 3)) (nonce-1 (6 0)) (pt-1 (6 3))
    (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 505)
  (parent 473)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 506)
  (parent 478)
  (seen 530)
  (unrealized (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 507)
  (parent 479)
  (seen 531)
  (unrealized (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 508)
  (parent 480)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 509)
  (parent 480)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 510)
  (parent 480)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 511)
  (parent 483)
  (unrealized (0 0) (5 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 512)
  (parent 484)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 513)
  (parent 485)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 514)
  (parent 486)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 515)
  (parent 486)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 516)
  (parent 486)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 517)
  (parent 487)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 518)
  (parent 487)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 519)
  (parent 489)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 520)
  (parent 491)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 521)
  (parent 492)
  (seen 471)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 522)
  (parent 492)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 523)
  (parent 493)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 524)
  (parent 494)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 525)
  (parent 494)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 526)
  (parent 495)
  (seen 548)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 527)
  (parent 495)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 528)
  (parent 495)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 529)
  (parent 496)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 530)
  (parent 496)
  (seen 475)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 531)
  (parent 496)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 532)
  (parent 496)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 533)
  (parent 498)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 534)
  (parent 498)
  (seen 502)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 535)
  (parent 498)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 536)
  (parent 502)
  (seen 504)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 537)
  (parent 505)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 538)
  (parent 506)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 539)
  (parent 507)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 540)
  (parent 509)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 541)
  (parent 512)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 542)
  (parent 513)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 543)
  (parent 514)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 544)
  (parent 514)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 545)
  (parent 514)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 546)
  (parent 517)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 547)
  (parent 519)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 548)
  (parent 520)
  (seen 502)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 549)
  (parent 520)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 550)
  (parent 524)
  (seen 564 566)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 551)
  (parent 524)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 552)
  (parent 525)
  (seen 570)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 553)
  (parent 525)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 554)
  (parent 525)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 555)
  (parent 526)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 556)
  (parent 526)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 557)
  (parent 529)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 558)
  (parent 531)
  (seen 546)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 559)
  (parent 532)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 560)
  (parent 532)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 561)
  (parent 532)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 562)
  (parent 537)
  (seen 440)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 563)
  (parent 540)
  (seen 577)
  (unrealized (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 564)
  (parent 541)
  (seen 530)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 565)
  (parent 541)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 566)
  (parent 542)
  (seen 531)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (5 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 567)
  (parent 542)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 568)
  (parent 544)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 569)
  (parent 546)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 570)
  (parent 547)
  (seen 534)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 571)
  (parent 547)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 572)
  (parent 550)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 573)
  (parent 550)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 574)
  (parent 552)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 575)
  (parent 552)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 576)
  (parent 559)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 577)
  (parent 559)
  (seen 548)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 578)
  (parent 559)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 579)
  (parent 563)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 580)
  (parent 568)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 581)
  (parent 569)
  (seen 466)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 582)
  (parent 572)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 583)
  (parent 573)
  (seen 586)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 584)
  (parent 573)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 585)
  (parent 573)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((4 3) (10 2)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 586)
  (parent 580)
  (seen 577)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (9 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 587)
  (parent 580)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 588)
  (parent 583)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 589)
  (parent 583)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(comment "Nothing left to do")

(defprotocol envelope basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false)))))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 590)
  (unrealized (0 0) (1 0) (2 3))
  (preskeleton)
  (origs (v (2 4)) (n (2 1)))
  (comment "Not a skeleton"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 591)
  (parent 590)
  (unrealized (0 0) (2 3))
  (origs (v (2 4)) (n (2 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 3))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 592)
  (parent 591)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 593)
  (parent 592)
  (unrealized (0 0) (1 0) (3 0) (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (displaced 4 2 alice 3)
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 594)
  (parent 592)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)) ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 595)
  (parent 592)
  (unrealized (0 0) (1 0) (4 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 596)
  (parent 593)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg) (pcr-id pcr-id-0 nonce pcr-id-1 text)
    (n v data) (pt pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt) (k k) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-0))
      (load pcr (cat pt current-value)) (send v)))
  (label 597)
  (parent 594)
  (unrealized (0 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 598)
  (parent 595)
  (unrealized (0 0) (1 0) (4 0) (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 1) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 599)
  (parent 595)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 600)
  (parent 596)
  (unrealized (0 0) (1 0) (2 0) (3 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (genStV (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 5 3 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-0) (4 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
  (label 601)
  (parent 597)
  (unrealized (0 0) (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id-0) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 602)
  (parent 598)
  (unrealized (0 0) (1 0) (2 0) (4 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 603)
  (parent 600)
  (unrealized (0 0) (1 0) (2 0) (3 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 604)
  (parent 600)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 2 alice 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 605)
  (parent 600)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 606)
  (parent 600)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
  (label 607)
  (parent 601)
  (unrealized (0 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (6 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0))
    ((6 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 608)
  (parent 602)
  (unrealized (0 0) (1 0) (2 0) (4 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 609)
  (parent 602)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0))
    ((6 1) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 610)
  (parent 602)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (3 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 611)
  (parent 603)
  (unrealized (0 0) (1 0) (2 0) (3 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 612)
  (parent 604)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (2 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 613)
  (parent 605)
  (unrealized (0 0) (1 0) (3 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 0))
    ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 614)
  (parent 606)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 615)
  (parent 606)
  (unrealized (0 0) (1 0) (2 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 616)
  (parent 606)
  (unrealized (0 0) (1 0) (2 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 617)
  (parent 607)
  (unrealized (0 0) (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 618)
  (parent 609)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 619)
  (parent 612)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 620)
  (parent 613)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 621)
  (parent 613)
  (unrealized (0 0) (1 0) (3 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 622)
  (parent 613)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 623)
  (parent 613)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 624)
  (parent 613)
  (unrealized (0 0) (1 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 625)
  (parent 614)
  (unrealized (0 0) (1 0) (2 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 626)
  (parent 614)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 627)
  (parent 614)
  (unrealized (0 0) (1 0) (2 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (6 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 628)
  (parent 617)
  (unrealized (0 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-1) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-1 current-value)) (send v)))
  (label 629)
  (parent 618)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 630)
  (parent 619)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-0) (tpm tpm-0)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-0))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 631)
  (parent 620)
  (unrealized (0 0) (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (3 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 632)
  (parent 621)
  (unrealized (0 0) (1 0) (3 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 633)
  (parent 622)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 634)
  (parent 623)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 635)
  (parent 623)
  (unrealized (0 0) (1 0) (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 636)
  (parent 623)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 637)
  (parent 623)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 638)
  (parent 624)
  (unrealized (0 0) (1 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 639)
  (parent 624)
  (unrealized (0 0) (1 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 640)
  (parent 624)
  (unrealized (0 0) (1 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 641)
  (parent 626)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (2 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 642)
  (parent 628)
  (unrealized (0 0) (3 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v)))
  (label 643)
  (parent 629)
  (unrealized (0 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 644)
  (parent 630)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 645)
  (parent 630)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-0) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 646)
  (parent 631)
  (unrealized (0 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 647)
  (parent 633)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 648)
  (parent 634)
  (unrealized (0 0) (1 0) (6 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 649)
  (parent 634)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 650)
  (parent 634)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 651)
  (parent 634)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 652)
  (parent 635)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 653)
  (parent 635)
  (unrealized (0 0) (1 0) (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 654)
  (parent 636)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 655)
  (parent 637)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 656)
  (parent 637)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 657)
  (parent 637)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 658)
  (parent 638)
  (unrealized (0 0) (1 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 659)
  (parent 638)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 660)
  (parent 638)
  (unrealized (0 0) (1 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 661)
  (parent 641)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 662)
  (parent 642)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 663)
  (parent 642)
  (seen 671 673)
  (unrealized (0 0) (3 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 664)
  (parent 642)
  (unrealized (0 0) (3 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 665)
  (parent 642)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 666)
  (parent 642)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 667)
  (parent 643)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 668)
  (parent 644)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 669)
  (parent 645)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 670)
  (parent 645)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 671)
  (parent 646)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 672)
  (parent 646)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 673)
  (parent 647)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 674)
  (parent 647)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 675)
  (parent 648)
  (unrealized (0 0) (1 0) (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 676)
  (parent 649)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 677)
  (parent 650)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 678)
  (parent 651)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 679)
  (parent 651)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 680)
  (parent 651)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 681)
  (parent 652)
  (unrealized (0 0) (1 0) (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 682)
  (parent 652)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 683)
  (parent 652)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 684)
  (parent 652)
  (unrealized (0 0) (1 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 685)
  (parent 654)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 686)
  (parent 655)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 687)
  (parent 655)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 688)
  (parent 655)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 689)
  (parent 659)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 690)
  (parent 661)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 691)
  (parent 662)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 692)
  (parent 663)
  (unrealized (0 0) (3 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 693)
  (parent 663)
  (seen 697 725)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 694)
  (parent 663)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 695)
  (parent 664)
  (seen 709 712 732)
  (unrealized (0 0) (3 0))
  (comment "6 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 696)
  (parent 664)
  (unrealized (0 0) (3 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 697)
  (parent 665)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 698)
  (parent 665)
  (unrealized (0 0) (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 699)
  (parent 665)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 700)
  (parent 665)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 6 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 701)
  (parent 666)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 702)
  (parent 666)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 703)
  (parent 666)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 704)
  (parent 667)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 705)
  (parent 667)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 706)
  (parent 668)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 707)
  (parent 669)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 708)
  (parent 671)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 709)
  (parent 672)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (6 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 710)
  (parent 672)
  (unrealized (0 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 711)
  (parent 673)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 712)
  (parent 674)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 713)
  (parent 674)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 714)
  (parent 676)
  (seen 743)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 715)
  (parent 677)
  (seen 744)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 716)
  (parent 678)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 717)
  (parent 678)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 718)
  (parent 678)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 719)
  (parent 681)
  (unrealized (0 0) (1 0) (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-4) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-4 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 720)
  (parent 682)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 721)
  (parent 683)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 722)
  (parent 684)
  (unrealized (0 0) (1 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 723)
  (parent 684)
  (unrealized (0 0) (1 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 724)
  (parent 684)
  (unrealized (0 0) (1 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 725)
  (parent 685)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 726)
  (parent 685)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 727)
  (parent 687)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 728)
  (parent 689)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 729)
  (parent 690)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 730)
  (parent 690)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 731)
  (parent 691)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 732)
  (parent 692)
  (unrealized (0 0) (3 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 733)
  (parent 692)
  (unrealized (0 0) (3 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 734)
  (parent 693)
  (unrealized (0 0) (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 735)
  (parent 693)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 6 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 736)
  (parent 694)
  (seen 775)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 737)
  (parent 694)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 738)
  (parent 694)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 739)
  (parent 695)
  (unrealized (0 0) (3 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 740)
  (parent 695)
  (seen 746 772)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 741)
  (parent 695)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 742)
  (parent 697)
  (unrealized (0 0) (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 743)
  (parent 697)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 744)
  (parent 697)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 745)
  (parent 697)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 746)
  (parent 698)
  (seen 802)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 747)
  (parent 698)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 748)
  (parent 699)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 749)
  (parent 700)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 750)
  (parent 700)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 751)
  (parent 700)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 752)
  (parent 701)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 753)
  (parent 701)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 754)
  (parent 701)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 755)
  (parent 704)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (9 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 756)
  (parent 706)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (4 0)) (pt-0 (4 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1))
    ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 757)
  (parent 706)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 758)
  (parent 707)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 759)
  (parent 708)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 760)
  (parent 709)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 761)
  (parent 711)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 762)
  (parent 712)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 763)
  (parent 714)
  (seen 810)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 764)
  (parent 715)
  (seen 811)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 765)
  (parent 717)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-4 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 766)
  (parent 720)
  (unrealized (0 0) (9 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 767)
  (parent 721)
  (unrealized (0 0) (8 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 768)
  (parent 722)
  (unrealized (0 0) (1 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 769)
  (parent 722)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 770)
  (parent 722)
  (unrealized (0 0) (1 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 771)
  (parent 725)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 772)
  (parent 726)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 773)
  (parent 726)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 774)
  (parent 727)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 775)
  (parent 728)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 776)
  (parent 728)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 777)
  (parent 729)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 778)
  (parent 730)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 779)
  (parent 730)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 780)
  (parent 731)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (8 0)) (pt-2 (8 3))
    (nonce-0 (5 0)) (pt (5 3)) (k (3 1)) (n (2 1)) (v (2 4))))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 781)
  (parent 731)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-2 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 782)
  (parent 732)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 783)
  (parent 732)
  (unrealized (0 0) (3 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1)) ((8 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 784)
  (parent 732)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 785)
  (parent 732)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 786)
  (parent 732)
  (seen 788 796)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 787)
  (parent 732)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 788)
  (parent 734)
  (seen 802 830 833)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 789)
  (parent 734)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 790)
  (parent 735)
  (seen 839)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 791)
  (parent 735)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 792)
  (parent 735)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 793)
  (parent 736)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 794)
  (parent 736)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 3) (3 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 795)
  (parent 739)
  (unrealized (0 0) (3 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 796)
  (parent 740)
  (seen 802 831 834)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 797)
  (parent 740)
  (unrealized (0 0) (8 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 798)
  (parent 740)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 799)
  (parent 741)
  (seen 842)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 800)
  (parent 741)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 801)
  (parent 741)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 802)
  (parent 742)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 803)
  (parent 742)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 804)
  (parent 743)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 805)
  (parent 744)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 806)
  (parent 745)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 807)
  (parent 745)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 808)
  (parent 745)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 809)
  (parent 746)
  (unrealized (0 0) (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 810)
  (parent 746)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 811)
  (parent 746)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 812)
  (parent 746)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 813)
  (parent 748)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 814)
  (parent 749)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 815)
  (parent 749)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 816)
  (parent 749)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 817)
  (parent 753)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 818)
  (parent 755)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 819)
  (parent 758)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 820)
  (parent 758)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 821)
  (parent 759)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (6 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 822)
  (parent 759)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 823)
  (parent 760)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 824)
  (parent 761)
  (seen 756)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (7 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 825)
  (parent 761)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 826)
  (parent 762)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 827)
  (parent 763)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 828)
  (parent 764)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 829)
  (parent 765)
  (seen 877)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 830)
  (parent 766)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 831)
  (parent 766)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 832)
  (parent 766)
  (unrealized (0 0) (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 833)
  (parent 767)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 834)
  (parent 767)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 835)
  (parent 767)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-4) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-4 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 836)
  (parent 769)
  (unrealized (0 0) (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 837)
  (parent 771)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 838)
  (parent 772)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 839)
  (parent 774)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 840)
  (parent 774)
  (unrealized (0 0) (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 841)
  (parent 775)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 842)
  (parent 776)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 843)
  (parent 776)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 844)
  (parent 777)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 845)
  (parent 778)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 846)
  (parent 782)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 3) (3 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 847)
  (parent 783)
  (unrealized (0 0) (3 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 848)
  (parent 784)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 849)
  (parent 785)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 850)
  (parent 786)
  (unrealized (0 0) (8 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 851)
  (parent 786)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 852)
  (parent 786)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 853)
  (parent 787)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 854)
  (parent 787)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 855)
  (parent 787)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 856)
  (parent 788)
  (unrealized (0 0) (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 857)
  (parent 788)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 858)
  (parent 790)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 859)
  (parent 790)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 860)
  (parent 796)
  (unrealized (0 0) (8 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 861)
  (parent 796)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 862)
  (parent 797)
  (seen 899 903 933)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 863)
  (parent 797)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 864)
  (parent 798)
  (seen 910)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 865)
  (parent 798)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 866)
  (parent 798)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 867)
  (parent 799)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 868)
  (parent 799)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 869)
  (parent 802)
  (unrealized (0 0) (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 870)
  (parent 802)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 871)
  (parent 802)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 872)
  (parent 802)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 873)
  (parent 802)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 874)
  (parent 804)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 875)
  (parent 805)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 876)
  (parent 806)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 877)
  (parent 806)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 878)
  (parent 806)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 879)
  (parent 809)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 880)
  (parent 810)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 881)
  (parent 811)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 882)
  (parent 812)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 883)
  (parent 812)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 884)
  (parent 812)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 885)
  (parent 813)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (9 0)) (pt-2 (9 3))
    (n (2 1)) (k-0 (7 1)) (nonce-0 (5 0)) (pt (5 3)) (k (3 1))
    (v (2 4))))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 886)
  (parent 813)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 887)
  (parent 815)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 888)
  (parent 817)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((5 3) (10 2)) ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 889)
  (parent 818)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (8 2)) ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt-0 pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 890)
  (parent 818)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 891)
  (parent 821)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 892)
  (parent 823)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (6 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 893)
  (parent 823)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 894)
  (parent 826)
  (seen 819)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 895)
  (parent 826)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 896)
  (parent 829)
  (seen 957)
  (unrealized (0 0) (10 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 897)
  (parent 830)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 898)
  (parent 831)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 899)
  (parent 832)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 900)
  (parent 832)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 901)
  (parent 833)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 902)
  (parent 834)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 903)
  (parent 835)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 904)
  (parent 835)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 11 3 tpm-create-key 2)
    (enc "created" k pcr-id-4 current-value aik-2) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 905)
  (parent 836)
  (unrealized (0 0) (10 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 906)
  (parent 837)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (6 0)) ((2 4) (7 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 907)
  (parent 837)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 908)
  (parent 838)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 909)
  (parent 839)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 910)
  (parent 840)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 911)
  (parent 840)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 912)
  (parent 841)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 913)
  (parent 842)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 914)
  (parent 844)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 915)
  (parent 844)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 916)
  (parent 845)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 917)
  (parent 846)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 918)
  (parent 848)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 919)
  (parent 849)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 920)
  (parent 850)
  (seen 933)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 921)
  (parent 850)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 922)
  (parent 851)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 923)
  (parent 852)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 924)
  (parent 852)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 925)
  (parent 852)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 926)
  (parent 853)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0))))
  (label 927)
  (parent 853)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 928)
  (parent 853)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 929)
  (parent 856)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 930)
  (parent 857)
  (seen 972)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 931)
  (parent 857)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 932)
  (parent 857)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 933)
  (parent 860)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 934)
  (parent 860)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 935)
  (parent 861)
  (seen 973)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 936)
  (parent 861)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 937)
  (parent 861)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 938)
  (parent 862)
  (unrealized (0 0) (8 0) (10 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 939)
  (parent 862)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 940)
  (parent 864)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 941)
  (parent 864)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 942)
  (parent 869)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 943)
  (parent 870)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 944)
  (parent 871)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 945)
  (parent 872)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 946)
  (parent 873)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 947)
  (parent 873)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 948)
  (parent 873)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 2)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 949)
  (parent 874)
  (seen 824)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 950)
  (parent 874)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 951)
  (parent 875)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 952)
  (parent 875)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 953)
  (parent 877)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 954)
  (parent 880)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 955)
  (parent 881)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 956)
  (parent 882)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 957)
  (parent 882)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 958)
  (parent 882)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 959)
  (parent 887)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((6 3) (10 2)) ((7 1) (3 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 960)
  (parent 888)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 961)
  (parent 888)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((4 3) (9 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 962)
  (parent 889)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt-0 (4 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (7 0)) (pt-1 (7 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (3 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 963)
  (parent 891)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 964)
  (parent 892)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 965)
  (parent 896)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 966)
  (parent 897)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 967)
  (parent 898)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 968)
  (parent 899)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 969)
  (parent 901)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 970)
  (parent 902)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 971)
  (parent 903)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 972)
  (parent 905)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 973)
  (parent 905)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 974)
  (parent 905)
  (unrealized (0 0) (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 975)
  (parent 906)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 976)
  (parent 908)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 977)
  (parent 908)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 978)
  (parent 909)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 979)
  (parent 910)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 980)
  (parent 912)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 981)
  (parent 912)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 982)
  (parent 913)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 983)
  (parent 914)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 984)
  (parent 916)
  (seen 889)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 985)
  (parent 916)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 986)
  (parent 917)
  (seen 821)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 987)
  (parent 917)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 988)
  (parent 918)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 989)
  (parent 918)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (3 0))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 990)
  (parent 919)
  (seen 824)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 991)
  (parent 919)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 992)
  (parent 920)
  (unrealized (0 0) (8 0) (10 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 993)
  (parent 920)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 994)
  (parent 920)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 995)
  (parent 920)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 996)
  (parent 922)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 997)
  (parent 923)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 998)
  (parent 923)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 999)
  (parent 923)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1000)
  (parent 927)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1001)
  (parent 930)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1002)
  (parent 930)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1003)
  (parent 933)
  (unrealized (0 0) (8 0) (10 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1004)
  (parent 933)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1005)
  (parent 933)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1006)
  (parent 933)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1007)
  (parent 933)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1008)
  (parent 935)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1009)
  (parent 935)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1010)
  (parent 938)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1011)
  (parent 939)
  (seen 1044)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1012)
  (parent 939)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1013)
  (parent 939)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1014)
  (parent 943)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1015)
  (parent 944)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1016)
  (parent 945)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1017)
  (parent 946)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 1018)
  (parent 946)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1019)
  (parent 946)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (7 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1020)
  (parent 951)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1021)
  (parent 953)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1022)
  (parent 954)
  (seen 894)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1023)
  (parent 954)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1024)
  (parent 955)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1025)
  (parent 955)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1026)
  (parent 957)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1027)
  (parent 959)
  (seen 960)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1028)
  (parent 959)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 1)) ((6 3) (9 2)) ((7 2) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1029)
  (parent 960)
  (seen 962)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (6 0)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1030)
  (parent 963)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1031)
  (parent 964)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1032)
  (parent 966)
  (seen 988)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1033)
  (parent 966)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1034)
  (parent 967)
  (seen 949)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1035)
  (parent 967)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1036)
  (parent 968)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1037)
  (parent 969)
  (seen 1082)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1038)
  (parent 969)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1039)
  (parent 970)
  (seen 951)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1040)
  (parent 970)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1041)
  (parent 971)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1042)
  (parent 972)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1043)
  (parent 973)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1044)
  (parent 974)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1045)
  (parent 974)
  (unrealized (0 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (3 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1046)
  (parent 975)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (7 2))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1047)
  (parent 976)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1048)
  (parent 978)
  (seen 980)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1049)
  (parent 978)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1050)
  (parent 979)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1051)
  (parent 980)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1052)
  (parent 982)
  (seen 960)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1053)
  (parent 982)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1054)
  (parent 983)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0)) ((6 3) (5 2))
    ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1055)
  (parent 988)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1056)
  (parent 992)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1057)
  (parent 993)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1058)
  (parent 994)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1059)
  (parent 995)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1060)
  (parent 995)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1061)
  (parent 995)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1062)
  (parent 996)
  (seen 906)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1063)
  (parent 996)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1064)
  (parent 998)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1065)
  (parent 1000)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1066)
  (parent 1003)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1067)
  (parent 1004)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1068)
  (parent 1005)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1069)
  (parent 1006)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1070)
  (parent 1007)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1071)
  (parent 1007)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1072)
  (parent 1007)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1073)
  (parent 1011)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1074)
  (parent 1011)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1075)
  (parent 1014)
  (seen 988)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1076)
  (parent 1014)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1077)
  (parent 1015)
  (seen 990)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1078)
  (parent 1015)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1079)
  (parent 1016)
  (seen 951)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1080)
  (parent 1016)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1081)
  (parent 1018)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1082)
  (parent 1020)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1083)
  (parent 1021)
  (seen 980)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1084)
  (parent 1021)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1085)
  (parent 1024)
  (seen 1047)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1086)
  (parent 1026)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1087)
  (parent 1030)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((4 3) (7 0)) ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1088)
  (parent 1031)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 3) (8 1)) ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1089)
  (parent 1036)
  (seen 1022)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0))
    ((7 3) (8 1)) ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1090)
  (parent 1036)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1091)
  (parent 1041)
  (seen 1024)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1092)
  (parent 1041)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1093)
  (parent 1042)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1094)
  (parent 1043)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1095)
  (parent 1044)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1096)
  (parent 1046)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (7 2))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1097)
  (parent 1047)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1098)
  (parent 1050)
  (seen 1027)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0))
    ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1099)
  (parent 1050)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1100)
  (parent 1051)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1101)
  (parent 1054)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1102)
  (parent 1055)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1103)
  (parent 1057)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1104)
  (parent 1058)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1105)
  (parent 1059)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 1106)
  (parent 1059)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1107)
  (parent 1059)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1108)
  (parent 1064)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((6 3) (11 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1109)
  (parent 1065)
  (seen 980)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1110)
  (parent 1065)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1111)
  (parent 1067)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1112)
  (parent 1068)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1113)
  (parent 1069)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1114)
  (parent 1070)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 1115)
  (parent 1070)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1116)
  (parent 1070)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1117)
  (parent 1081)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1118)
  (parent 1082)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((6 3) (12 2))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1119)
  (parent 1086)
  (seen 1052)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1120)
  (parent 1086)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (2 3)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1121)
  (parent 1087)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (6 2))
    ((4 3) (7 0)) ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1122)
  (parent 1088)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1123)
  (parent 1093)
  (seen 1109)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1124)
  (parent 1093)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1125)
  (parent 1094)
  (seen 1083)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1126)
  (parent 1094)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1127)
  (parent 1095)
  (unrealized (13 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1128)
  (parent 1096)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (7 2))
    ((4 3) (8 0)) ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0))
    ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1129)
  (parent 1097)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1130)
  (parent 1100)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1131)
  (parent 1101)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (2 3)) ((6 0) (2 0)) ((6 3) (5 2))
    ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1132)
  (parent 1102)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1133)
  (parent 1103)
  (seen 1032)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1134)
  (parent 1103)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1135)
  (parent 1104)
  (seen 1037)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1136)
  (parent 1104)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1137)
  (parent 1106)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1138)
  (parent 1108)
  (seen 1048)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1139)
  (parent 1108)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1140)
  (parent 1111)
  (seen 1075)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1141)
  (parent 1111)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1142)
  (parent 1112)
  (seen 1077)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1143)
  (parent 1112)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1144)
  (parent 1113)
  (seen 1079)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1145)
  (parent 1113)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1146)
  (parent 1115)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((6 3) (12 2))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1147)
  (parent 1117)
  (seen 1109)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1148)
  (parent 1117)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (2 3)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1149)
  (parent 1118)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1150)
  (parent 1121)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1151)
  (parent 1122)
  (seen 780)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((5 3) (13 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0))
    ((10 3) (1 0)) ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1152)
  (parent 1127)
  (seen 1119)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0))
    ((10 3) (1 0)) ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1))
    ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1153)
  (parent 1127)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (2 3)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1154)
  (parent 1128)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (7 2))
    ((4 3) (8 0)) ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0))
    ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1155)
  (parent 1129)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1156)
  (parent 1130)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1157)
  (parent 1131)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1158)
  (parent 1132)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1159)
  (parent 1137)
  (unrealized (13 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1160)
  (parent 1146)
  (unrealized (13 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1161)
  (parent 1149)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 0)) ((4 3) (6 1)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 0)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1162)
  (parent 1150)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1163)
  (parent 1154)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((4 3) (8 0))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1164)
  (parent 1155)
  (seen 885)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1165)
  (parent 1156)
  (seen 1157)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1166)
  (parent 1157)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1167)
  (parent 1158)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((6 3) (13 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1168)
  (parent 1159)
  (seen 1123)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (11 1)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1))
    ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1169)
  (parent 1159)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((6 3) (13 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 1170)
  (parent 1160)
  (seen 1147)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (11 1)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1))
    ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1171)
  (parent 1160)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1172)
  (parent 1161)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1173)
  (parent 1162)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1174)
  (parent 1163)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1175)
  (parent 1166)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1176)
  (parent 1167)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1177)
  (parent 1172)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1178)
  (parent 1173)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1179)
  (parent 1174)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1180)
  (parent 1175)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1181)
  (parent 1176)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1182)
  (parent 1177)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 1)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1183)
  (parent 1178)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1184)
  (parent 1179)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1185)
  (parent 1180)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1186)
  (parent 1181)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1187)
  (parent 1182)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1188)
  (parent 1183)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1189)
  (parent 1184)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1190)
  (parent 1185)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1191)
  (parent 1186)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1192)
  (parent 1187)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1193)
  (parent 1188)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1194)
  (parent 1189)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1195)
  (parent 1190)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 0)) ((5 3) (4 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1196)
  (parent 1191)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (3 0)) ((6 3) (5 2)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1197)
  (parent 1192)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (6 2)) ((4 3) (7 1))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1198)
  (parent 1193)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1199)
  (parent 1194)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (8 1)) ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1200)
  (parent 1195)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1201)
  (parent 1196)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (2 3)) ((6 3) (5 2)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1202)
  (parent 1197)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1203)
  (parent 1198)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (8 1))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1204)
  (parent 1199)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1205)
  (parent 1200)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 1)) ((5 3) (0 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1206)
  (parent 1201)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (4 0)) ((6 3) (5 2)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1207)
  (parent 1202)
  (seen 1194)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1208)
  (parent 1203)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1209)
  (parent 1204)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (0 0)) ((4 3) (7 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1210)
  (parent 1205)
  (seen 962)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1211)
  (parent 1206)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (7 1)) ((4 3) (0 0)) ((4 3) (6 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1212)
  (parent 1208)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1213)
  (parent 1209)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1214)
  (parent 1211)
  (seen 819)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (0 0)) ((4 3) (6 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1215)
  (parent 1212)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (8 1)) ((4 3) (0 0)) ((4 3) (7 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1216)
  (parent 1213)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (0 0)) ((4 3) (6 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1217)
  (parent 1215)
  (seen 780)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1218)
  (parent 1216)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1219)
  (parent 1218)
  (seen 885)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(comment "Nothing left to do")

(defprotocol envelope-plus basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false))))
  (defrule ordered-extends
    (forall ((y z strd) (pcr locn))
      (implies
        (and (p "tpm-extend-enc" y 4) (p "tpm-extend-enc" z 4)
          (p "tpm-extend-enc" "pcr" y pcr)
          (p "tpm-extend-enc" "pcr" z pcr))
        (or (= y z) (prec y 3 z 2) (prec z 3 y 2))))))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (k aik akey) (tpm tpmconf chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig v n)
  (conf tpmconf)
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 1220)
  (unrealized (0 0) (1 3))
  (preskeleton)
  (origs (v (1 4)) (n (1 1)))
  (comment "Not a skeleton"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (k aik akey) (tpm tpmconf chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((1 4) (0 0)))
  (non-orig aik)
  (uniq-orig v n)
  (conf tpmconf)
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 1221)
  (parent 1220)
  (unrealized (1 3))
  (origs (v (1 4)) (n (1 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik) (1 3))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
  (label 1222)
  (parent 1221)
  (unrealized (0 0) (2 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 1223)
  (parent 1222)
  (unrealized (0 0) (2 0) (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (displaced 3 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
  (label 1224)
  (parent 1222)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1225)
  (parent 1222)
  (unrealized (0 0) (3 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (3 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1226)
  (parent 1223)
  (unrealized (0 0) (2 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg) (pcr-id nonce pcr-id-0 text) (v n data)
    (pt pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-0) (pt pt) (k k) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 current-value aik-0))
      (load pcr (cat pt current-value)) (send v)))
  (label 1227)
  (parent 1224)
  (unrealized (3 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1228)
  (parent 1225)
  (unrealized (0 0) (3 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1229)
  (parent 1225)
  (unrealized (0 0) (4 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1230)
  (parent 1226)
  (unrealized (0 0) (1 0) (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (genStV (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 4 2 tpm-create-key 2)
    (enc "created" k pcr-id-0 current-value aik-0) (3 1))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
  (label 1231)
  (parent 1227)
  (unrealized (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (pt pt-0 pval) (k aik akey)
    (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce v n pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-0 pcr-id) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1232)
  (parent 1228)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1233)
  (parent 1230)
  (unrealized (0 0) (1 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1234)
  (parent 1230)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 5 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1235)
  (parent 1230)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1236)
  (parent 1230)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (3 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
  (label 1237)
  (parent 1231)
  (unrealized (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (5 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1238)
  (parent 1232)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0))))
  (label 1239)
  (parent 1232)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce text) (v n data) (pt pt-0 pval) (k aik akey)
    (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce v n pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1240)
  (parent 1232)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1241)
  (parent 1233)
  (unrealized (0 0) (1 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1242)
  (parent 1234)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1243)
  (parent 1235)
  (unrealized (0 0) (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1244)
  (parent 1236)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1245)
  (parent 1236)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1246)
  (parent 1236)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1247)
  (parent 1237)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0))))
  (label 1248)
  (parent 1239)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1249)
  (parent 1242)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1250)
  (parent 1243)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1251)
  (parent 1243)
  (unrealized (0 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1252)
  (parent 1243)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1253)
  (parent 1243)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1254)
  (parent 1243)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1255)
  (parent 1244)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 1256)
  (parent 1244)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1257)
  (parent 1244)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1258)
  (parent 1247)
  (unrealized (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-1) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-1 current-value)) (send v)))
  (label 1259)
  (parent 1248)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1260)
  (parent 1249)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-0) (tpm tpm-0)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-0))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1261)
  (parent 1250)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (2 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1262)
  (parent 1251)
  (unrealized (0 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1263)
  (parent 1252)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 3 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1264)
  (parent 1253)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1265)
  (parent 1253)
  (seen 1264 1282)
  (unrealized (0 0) (5 0) (6 2))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1266)
  (parent 1253)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1267)
  (parent 1253)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1268)
  (parent 1254)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1269)
  (parent 1254)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1270)
  (parent 1254)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 1271)
  (parent 1256)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1272)
  (parent 1258)
  (unrealized (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1273)
  (parent 1259)
  (unrealized (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1274)
  (parent 1260)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-1 (3 0)) (pt-0 (3 3)) (k (2 1)) (nonce-0 (4 0))
    (pt (4 3)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0))
    ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1275)
  (parent 1260)
  (seen 1274 1298 1299)
  (unrealized (7 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 6 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-0) (5 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1276)
  (parent 1261)
  (unrealized (5 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1277)
  (parent 1263)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1278)
  (parent 1264)
  (unrealized (0 0) (5 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1279)
  (parent 1264)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1280)
  (parent 1264)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1281)
  (parent 1264)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1282)
  (parent 1265)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1283)
  (parent 1265)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1284)
  (parent 1266)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1285)
  (parent 1267)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1286)
  (parent 1267)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1287)
  (parent 1267)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1288)
  (parent 1268)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 1289)
  (parent 1268)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1290)
  (parent 1268)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1291)
  (parent 1271)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1292)
  (parent 1272)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (5 0)) (pt-0 (5 3)) (nonce-0 (4 0)) (pt (4 3)) (k (2 1))
    (n (1 1)) (v (1 4))))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1293)
  (parent 1272)
  (seen 1301 1303)
  (unrealized (2 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1294)
  (parent 1272)
  (seen 1293 1324 1325)
  (unrealized (2 0) (6 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1295)
  (parent 1272)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1296)
  (parent 1272)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0))
    ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1297)
  (parent 1273)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((3 3) (7 2)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1298)
  (parent 1275)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (k (2 1)) (nonce-1 (3 0)) (pt-0 (3 3)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (7 2)) ((5 2) (2 0)) ((6 3) (0 0))
    ((7 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1299)
  (parent 1275)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (k (2 1)) (nonce-1 (3 0)) (pt-0 (3 3)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1300)
  (parent 1275)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 6 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1301)
  (parent 1276)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1302)
  (parent 1276)
  (seen 1301 1337 1338)
  (unrealized (6 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1303)
  (parent 1277)
  (seen 1274)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1304)
  (parent 1277)
  (seen 1303 1340 1341)
  (unrealized (7 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1305)
  (parent 1278)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1306)
  (parent 1279)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1307)
  (parent 1280)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1308)
  (parent 1281)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1309)
  (parent 1281)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1310)
  (parent 1281)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1311)
  (parent 1282)
  (seen 1282)
  (unrealized (0 0) (5 0) (7 2))
  (comment "3 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1312)
  (parent 1282)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1313)
  (parent 1282)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1314)
  (parent 1282)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1315)
  (parent 1284)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1316)
  (parent 1285)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 1317)
  (parent 1285)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1318)
  (parent 1285)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1319)
  (parent 1289)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1320)
  (parent 1291)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1321)
  (parent 1293)
  (seen 1293 1324 1360)
  (unrealized (2 0) (6 2))
  (comment "7 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1322)
  (parent 1293)
  (seen 1327 1354)
  (unrealized (6 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1323)
  (parent 1293)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1324)
  (parent 1294)
  (seen 1338 1341)
  (unrealized (2 0))
  (comment "6 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1325)
  (parent 1294)
  (seen 1337 1340 1360)
  (unrealized (2 0))
  (comment "6 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1326)
  (parent 1294)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1327)
  (parent 1295)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1328)
  (parent 1295)
  (seen 1327 1378 1379)
  (unrealized (6 0) (7 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1329)
  (parent 1295)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (n (1 1)) (k-0 (6 1)) (nonce (5 0)) (pt-0 (5 3))
    (nonce-0 (4 0)) (pt (4 3)) (k (2 1)) (v (1 4))))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1330)
  (parent 1295)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1331)
  (parent 1296)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1332)
  (parent 1296)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1333)
  (parent 1296)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1334)
  (parent 1297)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0))
    ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1335)
  (parent 1297)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (2 0)) ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1336)
  (parent 1301)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1337)
  (parent 1302)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 3) (0 0))
    ((6 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1338)
  (parent 1302)
  (seen 1301)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (5 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (0 0)) ((6 3) (5 2)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1339)
  (parent 1302)
  (unrealized (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((3 3) (7 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1340)
  (parent 1304)
  (seen 1298)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (7 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1341)
  (parent 1304)
  (seen 1299)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1342)
  (parent 1304)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1343)
  (parent 1306)
  (seen 1375)
  (unrealized (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1344)
  (parent 1307)
  (seen 1376)
  (unrealized (6 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1345)
  (parent 1308)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 1346)
  (parent 1308)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1347)
  (parent 1308)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (5 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1348)
  (parent 1311)
  (unrealized (0 0) (5 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 1349)
  (parent 1312)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-3) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 1350)
  (parent 1313)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1351)
  (parent 1314)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1352)
  (parent 1314)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1353)
  (parent 1314)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1354)
  (parent 1315)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1355)
  (parent 1315)
  (seen 1354 1399 1400)
  (unrealized (7 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1356)
  (parent 1317)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1357)
  (parent 1319)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1358)
  (parent 1320)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1359)
  (parent 1320)
  (seen 1358 1406 1407)
  (unrealized (8 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1360)
  (parent 1321)
  (unrealized (2 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1361)
  (parent 1321)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1362)
  (parent 1322)
  (seen 1327 1378 1415)
  (unrealized (6 0) (7 2))
  (comment "7 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1363)
  (parent 1322)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1364)
  (parent 1323)
  (seen 1403)
  (unrealized (6 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1365)
  (parent 1323)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1366)
  (parent 1323)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1367)
  (parent 1324)
  (seen 1324 1422)
  (unrealized (2 0) (7 2))
  (comment "15 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1368)
  (parent 1324)
  (seen 1303)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1369)
  (parent 1324)
  (seen 1400)
  (unrealized (7 0))
  (comment "4 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1370)
  (parent 1324)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1371)
  (parent 1325)
  (seen 1325 1360 1422)
  (unrealized (2 0) (7 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1372)
  (parent 1325)
  (seen 1379 1399)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1373)
  (parent 1325)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1374)
  (parent 1327)
  (seen 1327 1378 1436)
  (unrealized (6 0) (7 2))
  (comment "7 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1375)
  (parent 1327)
  (seen 1303)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1376)
  (parent 1327)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1377)
  (parent 1327)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1378)
  (parent 1328)
  (unrealized (6 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1379)
  (parent 1328)
  (seen 1436)
  (unrealized (6 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1380)
  (parent 1328)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1381)
  (parent 1330)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1382)
  (parent 1330)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1383)
  (parent 1330)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1384)
  (parent 1331)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 1385)
  (parent 1331)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1386)
  (parent 1331)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 3) (0 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1387)
  (parent 1334)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (3 0)) (pt-0 (3 3)) (nonce-1 (6 0)) (pt-1 (6 3))
    (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1388)
  (parent 1336)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1389)
  (parent 1337)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1390)
  (parent 1343)
  (seen 1375 1443 1448)
  (unrealized (8 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1391)
  (parent 1344)
  (seen 1376 1445 1449)
  (unrealized (7 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 1392)
  (parent 1346)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1393)
  (parent 1349)
  (unrealized (8 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1394)
  (parent 1350)
  (unrealized (7 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1395)
  (parent 1351)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1396)
  (parent 1351)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1397)
  (parent 1351)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (2 0)) ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1398)
  (parent 1354)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (7 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1399)
  (parent 1355)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (7 2)) ((5 1) (2 0))
    ((6 3) (0 0)) ((7 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1400)
  (parent 1355)
  (seen 1354)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1401)
  (parent 1355)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1402)
  (parent 1356)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1403)
  (parent 1357)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1404)
  (parent 1357)
  (seen 1403 1472 1473)
  (unrealized (8 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1405)
  (parent 1358)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((3 3) (8 2)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1406)
  (parent 1359)
  (seen 1334)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1407)
  (parent 1359)
  (seen 1358)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1408)
  (parent 1359)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-2 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1409)
  (parent 1360)
  (seen 1301)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1410)
  (parent 1360)
  (seen 1360 1422)
  (unrealized (2 0) (7 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1411)
  (parent 1360)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1412)
  (parent 1360)
  (seen 1303)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1413)
  (parent 1360)
  (seen 1415)
  (unrealized (7 0))
  (comment "4 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1414)
  (parent 1360)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1415)
  (parent 1362)
  (seen 1436 1460 1463)
  (unrealized (6 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1416)
  (parent 1362)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1417)
  (parent 1363)
  (seen 1469)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1418)
  (parent 1363)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1419)
  (parent 1363)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1420)
  (parent 1364)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1421)
  (parent 1364)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1422)
  (parent 1367)
  (unrealized (2 0))
  (comment "7 in cohort - 7 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (2 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1423)
  (parent 1367)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1424)
  (parent 1369)
  (seen 1378 1461 1464)
  (unrealized (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1425)
  (parent 1369)
  (seen 1378 1424 1497 1498)
  (unrealized (7 0) (8 2))
  (comment "27 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1426)
  (parent 1369)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1427)
  (parent 1370)
  (seen 1473)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1428)
  (parent 1370)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1429)
  (parent 1370)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1430)
  (parent 1371)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1431)
  (parent 1372)
  (seen 1379 1436 1505 1506)
  (unrealized (7 0) (8 2))
  (comment "25 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1432)
  (parent 1372)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (7 0)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1433)
  (parent 1373)
  (seen 1472)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1434)
  (parent 1373)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1435)
  (parent 1373)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1436)
  (parent 1374)
  (unrealized (6 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1437)
  (parent 1374)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (6 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1438)
  (parent 1376)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1439)
  (parent 1377)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1440)
  (parent 1377)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1441)
  (parent 1377)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1442)
  (parent 1378)
  (seen 1378 1505)
  (unrealized (6 0) (8 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1443)
  (parent 1378)
  (seen 1341)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1444)
  (parent 1378)
  (seen 1368)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1445)
  (parent 1378)
  (seen 1376)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1446)
  (parent 1378)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1447)
  (parent 1379)
  (seen 1379 1436 1505)
  (unrealized (6 0) (8 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1448)
  (parent 1379)
  (seen 1340)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1449)
  (parent 1379)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1450)
  (parent 1379)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1451)
  (parent 1381)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 1452)
  (parent 1381)
  (seen 1385)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1453)
  (parent 1381)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 1454)
  (parent 1385)
  (seen 1387)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1455)
  (parent 1388)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1456)
  (parent 1389)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1457)
  (parent 1390)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1458)
  (parent 1391)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1459)
  (parent 1392)
  (seen 1520)
  (unrealized (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1460)
  (parent 1393)
  (seen 1411)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1461)
  (parent 1393)
  (seen 1375)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1462)
  (parent 1393)
  (seen 1460 1461 1534 1535 1536)
  (unrealized (9 2))
  (comment "33 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1463)
  (parent 1394)
  (seen 1518)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1464)
  (parent 1394)
  (seen 1376)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1465)
  (parent 1394)
  (seen 1463 1464 1538 1539 1540)
  (unrealized (8 2))
  (comment "33 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 1466)
  (parent 1396)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1467)
  (parent 1398)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1468)
  (parent 1399)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1469)
  (parent 1402)
  (seen 1403)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1470)
  (parent 1402)
  (seen 1469 1545 1546)
  (unrealized (9 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1471)
  (parent 1403)
  (seen 1405)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (8 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1472)
  (parent 1404)
  (seen 1385)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1473)
  (parent 1404)
  (seen 1403)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1474)
  (parent 1404)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (2 0))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1475)
  (parent 1405)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 3) (2 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1476)
  (parent 1410)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2)) ((6 3) (4 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((1 2) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1477)
  (parent 1411)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1478)
  (parent 1413)
  (seen 1415 1436 1505 1550)
  (unrealized (7 0) (8 2))
  (comment "25 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1479)
  (parent 1413)
  (seen 1354)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1480)
  (parent 1413)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (7 0)) ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1481)
  (parent 1414)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1482)
  (parent 1414)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1483)
  (parent 1414)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1484)
  (parent 1415)
  (seen 1415 1436 1505)
  (unrealized (6 0) (8 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1485)
  (parent 1415)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1486)
  (parent 1417)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1487)
  (parent 1417)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-3 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1488)
  (parent 1422)
  (seen 1409)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1489)
  (parent 1422)
  (seen 1422)
  (unrealized (2 0) (8 2))
  (comment "39 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1490)
  (parent 1422)
  (seen 1411)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (8 1)) ((7 3) (4 2)) ((8 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1491)
  (parent 1422)
  (seen 1341)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (8 1)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1492)
  (parent 1422)
  (seen 1412)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1493)
  (parent 1422)
  (seen 1497)
  (unrealized (8 0))
  (comment "4 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1494)
  (parent 1422)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1495)
  (parent 1424)
  (seen 1378 1424 1498 1569)
  (unrealized (7 0) (8 2))
  (comment "27 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1496)
  (parent 1424)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1497)
  (parent 1425)
  (seen 1536 1540 1569)
  (unrealized (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1498)
  (parent 1425)
  (seen 1535 1539)
  (unrealized (7 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1499)
  (parent 1425)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1500)
  (parent 1426)
  (seen 1546)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1501)
  (parent 1426)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1502)
  (parent 1426)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1503)
  (parent 1427)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1504)
  (parent 1427)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1505)
  (parent 1431)
  (unrealized (7 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1506)
  (parent 1431)
  (seen 1534 1538)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1507)
  (parent 1431)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (8 0)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1508)
  (parent 1432)
  (seen 1545)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1509)
  (parent 1432)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1510)
  (parent 1432)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1511)
  (parent 1433)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1512)
  (parent 1433)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1513)
  (parent 1436)
  (seen 1436 1505)
  (unrealized (6 0) (8 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1514)
  (parent 1436)
  (seen 1411)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1515)
  (parent 1436)
  (seen 1412)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1516)
  (parent 1436)
  (seen 1376)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1517)
  (parent 1436)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1518)
  (parent 1438)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1519)
  (parent 1439)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 1520)
  (parent 1439)
  (seen 1403)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1521)
  (parent 1439)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1522)
  (parent 1442)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1523)
  (parent 1446)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1524)
  (parent 1446)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1525)
  (parent 1446)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1526)
  (parent 1447)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1527)
  (parent 1449)
  (seen 1468)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1528)
  (parent 1450)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1529)
  (parent 1450)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1530)
  (parent 1450)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1531)
  (parent 1455)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 0)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1532)
  (parent 1456)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1533)
  (parent 1459)
  (seen 1520 1597 1600)
  (unrealized (9 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (9 2)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 3) (0 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1534)
  (parent 1462)
  (seen 1448)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (9 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0))
    ((9 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1535)
  (parent 1462)
  (seen 1443)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (7 1)) ((6 3) (9 2)) ((7 2) (5 0)) ((8 3) (0 0))
    ((9 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1536)
  (parent 1462)
  (seen 1460)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1537)
  (parent 1462)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (8 2)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1538)
  (parent 1465)
  (seen 1449)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (8 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0)) ((8 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1539)
  (parent 1465)
  (seen 1445)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (5 0)) ((6 3) (8 2)) ((7 3) (0 0)) ((8 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1540)
  (parent 1465)
  (seen 1463)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (5 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1541)
  (parent 1465)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 2 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1542)
  (parent 1466)
  (unrealized (9 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (1 3)) ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1543)
  (parent 1467)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1544)
  (parent 1468)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (9 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1545)
  (parent 1470)
  (seen 1452)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (7 1)) ((4 3) (9 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0))
    ((9 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1546)
  (parent 1470)
  (seen 1469)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1547)
  (parent 1470)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (1 3))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1548)
  (parent 1475)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1549)
  (parent 1477)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1550)
  (parent 1478)
  (unrealized (7 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1551)
  (parent 1478)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (8 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1552)
  (parent 1480)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1553)
  (parent 1480)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1554)
  (parent 1480)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1555)
  (parent 1481)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (8 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 2) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 1556)
  (parent 1481)
  (seen 1403)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1557)
  (parent 1481)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1558)
  (parent 1484)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1559)
  (parent 1485)
  (seen 1605)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1560)
  (parent 1485)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1561)
  (parent 1485)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 3) (2 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1562)
  (parent 1489)
  (unrealized (2 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1563)
  (parent 1493)
  (seen 1497 1505 1569 1621 1622)
  (unrealized (8 0) (9 2))
  (comment "113 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (8 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1564)
  (parent 1493)
  (seen 1479)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1565)
  (parent 1493)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1566)
  (parent 1494)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1567)
  (parent 1494)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1568)
  (parent 1494)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1569)
  (parent 1495)
  (seen 1505)
  (unrealized (7 0))
  (comment "6 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1570)
  (parent 1495)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1571)
  (parent 1496)
  (seen 1606)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1572)
  (parent 1496)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1573)
  (parent 1496)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1574)
  (parent 1497)
  (seen 1497 1505 1569 1622)
  (unrealized (7 0) (9 2))
  (comment "83 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1575)
  (parent 1497)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1576)
  (parent 1498)
  (seen 1498 1622)
  (unrealized (7 0) (9 2))
  (comment "47 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((4 3) (9 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1577)
  (parent 1498)
  (seen 1444)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1578)
  (parent 1498)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1579)
  (parent 1500)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1580)
  (parent 1500)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1581)
  (parent 1505)
  (seen 1505)
  (unrealized (7 0) (9 2))
  (comment "39 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1582)
  (parent 1505)
  (seen 1443)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (9 1)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1583)
  (parent 1505)
  (seen 1490)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((4 3) (9 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1584)
  (parent 1505)
  (seen 1444)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1585)
  (parent 1505)
  (seen 1445)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1586)
  (parent 1505)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1587)
  (parent 1506)
  (seen 1506)
  (unrealized (7 0) (9 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1588)
  (parent 1506)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1589)
  (parent 1508)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1590)
  (parent 1508)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((8 3) (6 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1591)
  (parent 1513)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1592)
  (parent 1517)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((8 1) (6 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1593)
  (parent 1517)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((8 1) (6 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1594)
  (parent 1517)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1595)
  (parent 1518)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1596)
  (parent 1523)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1597)
  (parent 1523)
  (seen 1473)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1598)
  (parent 1523)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1599)
  (parent 1528)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1600)
  (parent 1528)
  (seen 1472)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1601)
  (parent 1528)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (1 3)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1602)
  (parent 1531)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (4 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1603)
  (parent 1532)
  (seen 1292)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1604)
  (parent 1533)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1605)
  (parent 1542)
  (seen 1556)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1606)
  (parent 1542)
  (seen 1520)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1607)
  (parent 1542)
  (seen 1605 1606 1658 1659 1660)
  (unrealized (10 2))
  (comment "33 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1608)
  (parent 1543)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1609)
  (parent 1544)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1610)
  (parent 1548)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (6 2)) ((6 3) (4 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1611)
  (parent 1549)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1612)
  (parent 1550)
  (seen 1550)
  (unrealized (7 0) (9 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1613)
  (parent 1550)
  (seen 1460)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1614)
  (parent 1550)
  (seen 1463)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1615)
  (parent 1550)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1616)
  (parent 1552)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (9 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1617)
  (parent 1552)
  (seen 1469)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1618)
  (parent 1552)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1619)
  (parent 1559)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1620)
  (parent 1559)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1621)
  (parent 1563)
  (unrealized (8 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1622)
  (parent 1563)
  (unrealized (8 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1623)
  (parent 1563)
  (unrealized (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1624)
  (parent 1565)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1625)
  (parent 1565)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1626)
  (parent 1565)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1627)
  (parent 1566)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0))))
  (label 1628)
  (parent 1566)
  (seen 1556)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1629)
  (parent 1566)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1630)
  (parent 1569)
  (seen 1505 1569 1622)
  (unrealized (7 0) (9 2))
  (comment "83 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1631)
  (parent 1569)
  (seen 1514)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (9 1)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1632)
  (parent 1569)
  (seen 1515)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1633)
  (parent 1569)
  (seen 1516)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1634)
  (parent 1569)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (4 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1635)
  (parent 1571)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (4 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1636)
  (parent 1571)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1637)
  (parent 1574)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1638)
  (parent 1575)
  (seen 1660)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1639)
  (parent 1575)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1640)
  (parent 1575)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1641)
  (parent 1576)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1642)
  (parent 1578)
  (seen 1659)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1643)
  (parent 1578)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1644)
  (parent 1578)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1645)
  (parent 1581)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1646)
  (parent 1586)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1647)
  (parent 1586)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1648)
  (parent 1586)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1649)
  (parent 1587)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1650)
  (parent 1588)
  (seen 1658)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1651)
  (parent 1588)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1652)
  (parent 1588)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1653)
  (parent 1592)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (4 2)) ((8 1) (6 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1654)
  (parent 1592)
  (seen 1556)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1655)
  (parent 1592)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1656)
  (parent 1595)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1657)
  (parent 1602)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (10 2)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1658)
  (parent 1607)
  (seen 1600)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (8 1)) ((4 3) (10 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1659)
  (parent 1607)
  (seen 1597)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (5 0)) ((6 3) (10 2)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1660)
  (parent 1607)
  (seen 1605)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (9 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1661)
  (parent 1607)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (1 3)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1662)
  (parent 1608)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 1)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 1663)
  (parent 1609)
  (seen 1329)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (6 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1664)
  (parent 1610)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1665)
  (parent 1611)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1666)
  (parent 1612)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1667)
  (parent 1615)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1668)
  (parent 1615)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1669)
  (parent 1615)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain")))))
  (label 1670)
  (parent 1621)
  (seen 1621)
  (unrealized (8 0) (10 2))
  (comment "19 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 nonce-4 pcr-id-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1671)
  (parent 1621)
  (seen 1613)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (8 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 1 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1672)
  (parent 1621)
  (seen 1614)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1673)
  (parent 1621)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain")))))
  (label 1674)
  (parent 1622)
  (seen 1622)
  (unrealized (8 0) (10 2))
  (comment "159 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 nonce-4 pcr-id-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1675)
  (parent 1622)
  (seen 1582)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 nonce-4 pcr-id-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((7 3) (10 1)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1676)
  (parent 1622)
  (seen 1583)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 nonce-4 pcr-id-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((4 3) (10 1)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1677)
  (parent 1622)
  (seen 1584)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (8 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 1 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1678)
  (parent 1622)
  (seen 1585)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1679)
  (parent 1622)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1680)
  (parent 1624)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (10 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 1681)
  (parent 1624)
  (seen 1617)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1682)
  (parent 1624)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1683)
  (parent 1630)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1684)
  (parent 1634)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1685)
  (parent 1634)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1686)
  (parent 1634)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1687)
  (parent 1638)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1688)
  (parent 1638)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1689)
  (parent 1642)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1690)
  (parent 1642)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1691)
  (parent 1646)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (10 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 1692)
  (parent 1646)
  (seen 1597)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1693)
  (parent 1646)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1694)
  (parent 1650)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1695)
  (parent 1650)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1696)
  (parent 1656)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (5 0)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1697)
  (parent 1657)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1698)
  (parent 1662)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (6 0))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1699)
  (parent 1664)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (6 2)) ((6 3) (4 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1700)
  (parent 1665)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1701)
  (parent 1667)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((5 3) (10 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 1702)
  (parent 1667)
  (seen 1605)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1703)
  (parent 1667)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 pcr-id-5 nonce-5 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-5) (pt pt-7) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 v n
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain"))))
    ((send tpm-6 (cat "token" nonce-5))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1704)
  (parent 1670)
  (unrealized (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 5 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1705)
  (parent 1673)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 1706)
  (parent 1673)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1707)
  (parent 1673)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 pcr-id-5 nonce-5 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-5) (pt pt-7) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 v n
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain"))))
    ((send tpm-6 (cat "token" nonce-5))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1708)
  (parent 1674)
  (unrealized (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 5 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1709)
  (parent 1679)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 1710)
  (parent 1679)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1711)
  (parent 1679)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (4 2)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1712)
  (parent 1684)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (10 1)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 1713)
  (parent 1684)
  (seen 1654)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (1 0)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (4 2)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1714)
  (parent 1684)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1715)
  (parent 1696)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1716)
  (parent 1697)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (6 0)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1717)
  (parent 1698)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (6 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1718)
  (parent 1699)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1719)
  (parent 1700)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 1720)
  (parent 1705)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 nonce-4 pcr-id-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((5 3) (11 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 1721)
  (parent 1705)
  (seen 1702)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1722)
  (parent 1705)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 1723)
  (parent 1709)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 nonce-4 pcr-id-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (11 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 1724)
  (parent 1709)
  (seen 1692)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1725)
  (parent 1709)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1726)
  (parent 1715)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1727)
  (parent 1716)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1728)
  (parent 1717)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (6 1))
    ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1729)
  (parent 1718)
  (seen 1387)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2)) ((6 3) (4 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1730)
  (parent 1719)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1731)
  (parent 1726)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (5 1)) ((3 3) (5 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 1)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1732)
  (parent 1727)
  (seen 1603)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1733)
  (parent 1728)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (3 1)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1734)
  (parent 1730)
  (seen 1298)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (3 1)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 1735)
  (parent 1731)
  (seen 1527)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (6 1)) ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 1736)
  (parent 1733)
  (seen 1663)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(comment "Nothing left to do")

(defprotocol envelope-plus basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false))))
  (defrule ordered-extends
    (forall ((y z strd) (pcr locn))
      (implies
        (and (p "tpm-extend-enc" y 4) (p "tpm-extend-enc" z 4)
          (p "tpm-extend-enc" "pcr" y pcr)
          (p "tpm-extend-enc" "pcr" z pcr))
        (or (= y z) (prec y 3 z 2) (prec z 3 y 2))))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 1737)
  (unrealized (0 0) (1 3))
  (preskeleton)
  (origs (v (1 4)) (n (1 1)))
  (comment "Not a skeleton"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((1 4) (0 0)))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 1738)
  (parent 1737)
  (unrealized (0 0) (1 3))
  (origs (v (1 4)) (n (1 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (1 3))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 1739)
  (parent 1738)
  (unrealized (0 0) (2 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 1740)
  (parent 1739)
  (unrealized (0 0) (2 0) (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (displaced 3 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 1741)
  (parent 1739)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1742)
  (parent 1739)
  (unrealized (0 0) (3 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (3 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1743)
  (parent 1740)
  (unrealized (0 0) (2 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (genStV (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1744)
  (parent 1741)
  (unrealized (3 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1745)
  (parent 1742)
  (unrealized (0 0) (3 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1746)
  (parent 1742)
  (unrealized (0 0) (4 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1747)
  (parent 1743)
  (unrealized (0 0) (1 0) (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0))
    ((4 3) (3 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (3 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
  (label 1748)
  (parent 1744)
  (unrealized (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id-0) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1749)
  (parent 1745)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1750)
  (parent 1747)
  (unrealized (0 0) (1 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1751)
  (parent 1747)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 5 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1752)
  (parent 1747)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1753)
  (parent 1747)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1754)
  (parent 1748)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (5 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1755)
  (parent 1749)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 1756)
  (parent 1749)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1757)
  (parent 1749)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1758)
  (parent 1750)
  (unrealized (0 0) (1 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1759)
  (parent 1751)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1760)
  (parent 1752)
  (unrealized (0 0) (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1761)
  (parent 1753)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1762)
  (parent 1753)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1763)
  (parent 1753)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1764)
  (parent 1754)
  (unrealized (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 1765)
  (parent 1756)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1766)
  (parent 1759)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 1767)
  (parent 1760)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1768)
  (parent 1760)
  (unrealized (0 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1769)
  (parent 1760)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1770)
  (parent 1760)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1771)
  (parent 1760)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1772)
  (parent 1761)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 1773)
  (parent 1761)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1774)
  (parent 1761)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1775)
  (parent 1764)
  (unrealized (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1776)
  (parent 1765)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 2) (0 0))
    ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1777)
  (parent 1766)
  (seen 1794 1795)
  (unrealized (7 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1778)
  (parent 1767)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (2 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1779)
  (parent 1768)
  (unrealized (0 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1780)
  (parent 1769)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 3 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1781)
  (parent 1770)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1782)
  (parent 1770)
  (seen 1781 1803)
  (unrealized (0 0) (5 0) (6 2))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1783)
  (parent 1770)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1784)
  (parent 1770)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1785)
  (parent 1771)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1786)
  (parent 1771)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1787)
  (parent 1771)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 1788)
  (parent 1773)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 1789)
  (parent 1775)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (5 0)) (pt-0 (5 3)) (nonce-0 (4 0)) (pt (4 3)) (n (1 1))
    (k (2 1)) (v (1 4))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1790)
  (parent 1775)
  (seen 1813 1814)
  (unrealized (2 0) (6 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1791)
  (parent 1775)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1792)
  (parent 1775)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 2) (0 0))
    ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1793)
  (parent 1776)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((3 3) (7 2)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1794)
  (parent 1777)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (nonce-1 (3 0)) (pt-0 (3 3)) (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (7 2)) ((5 2) (2 0)) ((6 2) (0 0))
    ((7 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1795)
  (parent 1777)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (nonce-1 (3 0)) (pt-0 (3 3)) (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1796)
  (parent 1777)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (0 0))
    ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (5 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1797)
  (parent 1778)
  (seen 1824 1825)
  (unrealized (6 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1798)
  (parent 1780)
  (seen 1827 1828)
  (unrealized (7 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1799)
  (parent 1781)
  (unrealized (0 0) (5 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1800)
  (parent 1781)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1801)
  (parent 1781)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1802)
  (parent 1781)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1803)
  (parent 1782)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1804)
  (parent 1782)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1805)
  (parent 1783)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1806)
  (parent 1784)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1807)
  (parent 1784)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1808)
  (parent 1784)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1809)
  (parent 1785)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 1810)
  (parent 1785)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1811)
  (parent 1785)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1812)
  (parent 1788)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1813)
  (parent 1790)
  (seen 1825 1828)
  (unrealized (2 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1814)
  (parent 1790)
  (seen 1824 1827)
  (unrealized (2 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1815)
  (parent 1790)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1816)
  (parent 1791)
  (seen 1852 1853)
  (unrealized (6 0) (7 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1817)
  (parent 1791)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (n (1 1)) (k-0 (6 1)) (nonce (5 0)) (pt-0 (5 3))
    (nonce-0 (4 0)) (pt (4 3)) (k (2 1)) (v (1 4))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1818)
  (parent 1791)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1819)
  (parent 1792)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1820)
  (parent 1792)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1821)
  (parent 1792)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1822)
  (parent 1793)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0))
    ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1823)
  (parent 1793)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1824)
  (parent 1797)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 2) (0 0))
    ((6 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1825)
  (parent 1797)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (5 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (0 0)) ((6 3) (5 1)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1826)
  (parent 1797)
  (unrealized (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((3 3) (7 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1827)
  (parent 1798)
  (seen 1794)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (7 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1828)
  (parent 1798)
  (seen 1795)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1829)
  (parent 1798)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1830)
  (parent 1799)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1831)
  (parent 1800)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1832)
  (parent 1801)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1833)
  (parent 1802)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1834)
  (parent 1802)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1835)
  (parent 1802)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1836)
  (parent 1803)
  (seen 1803)
  (unrealized (0 0) (5 0) (7 2))
  (comment "3 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1837)
  (parent 1803)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1838)
  (parent 1803)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1839)
  (parent 1803)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1840)
  (parent 1805)
  (seen 1875 1876)
  (unrealized (7 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1841)
  (parent 1806)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1842)
  (parent 1806)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1843)
  (parent 1806)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1844)
  (parent 1810)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1845)
  (parent 1812)
  (seen 1880 1881)
  (unrealized (8 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1846)
  (parent 1813)
  (seen 1813 1883)
  (unrealized (2 0) (7 2))
  (comment "9 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1847)
  (parent 1813)
  (seen 1852 1876)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1848)
  (parent 1813)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1849)
  (parent 1814)
  (seen 1814 1883)
  (unrealized (2 0) (7 2))
  (comment "9 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1850)
  (parent 1814)
  (seen 1853 1875)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1851)
  (parent 1814)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1852)
  (parent 1816)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1853)
  (parent 1816)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 1854)
  (parent 1816)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1855)
  (parent 1818)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1856)
  (parent 1818)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1857)
  (parent 1818)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1858)
  (parent 1819)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 1859)
  (parent 1819)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1860)
  (parent 1819)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1861)
  (parent 1822)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (3 0)) (pt-0 (3 3)) (nonce-1 (6 0)) (pt-1 (6 3))
    (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1862)
  (parent 1824)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 2)) ((4 2) (0 0)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1863)
  (parent 1825)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1864)
  (parent 1831)
  (seen 1897 1901)
  (unrealized (8 2))
  (comment "5 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1865)
  (parent 1832)
  (seen 1898 1902)
  (unrealized (7 2))
  (comment "5 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1866)
  (parent 1833)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1867)
  (parent 1833)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1868)
  (parent 1833)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 3) (5 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1869)
  (parent 1836)
  (unrealized (0 0) (5 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1870)
  (parent 1837)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1871)
  (parent 1838)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1872)
  (parent 1839)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1873)
  (parent 1839)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1874)
  (parent 1839)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (7 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1875)
  (parent 1840)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (7 2)) ((5 1) (2 0))
    ((6 2) (0 0)) ((7 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1876)
  (parent 1840)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1877)
  (parent 1840)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1878)
  (parent 1842)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1879)
  (parent 1844)
  (seen 1921 1922)
  (unrealized (8 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((3 3) (8 2)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1880)
  (parent 1845)
  (seen 1822)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1881)
  (parent 1845)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1882)
  (parent 1845)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1883)
  (parent 1846)
  (unrealized (2 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (2 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1884)
  (parent 1846)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1885)
  (parent 1847)
  (seen 1852 1931 1932)
  (unrealized (7 0) (8 2))
  (comment "21 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1886)
  (parent 1847)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1887)
  (parent 1848)
  (seen 1922)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1888)
  (parent 1848)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1889)
  (parent 1848)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1890)
  (parent 1849)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1891)
  (parent 1850)
  (seen 1853 1939 1940)
  (unrealized (7 0) (8 2))
  (comment "19 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1892)
  (parent 1850)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (7 0)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1893)
  (parent 1851)
  (seen 1921)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1894)
  (parent 1851)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1895)
  (parent 1851)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1896)
  (parent 1852)
  (seen 1852 1939)
  (unrealized (6 0) (8 2))
  (comment "9 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1897)
  (parent 1852)
  (seen 1828)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1898)
  (parent 1852)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1899)
  (parent 1852)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 1900)
  (parent 1853)
  (seen 1853 1939)
  (unrealized (6 0) (8 2))
  (comment "9 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1901)
  (parent 1853)
  (seen 1827)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1902)
  (parent 1853)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1903)
  (parent 1853)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1904)
  (parent 1855)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 1905)
  (parent 1855)
  (seen 1859)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1906)
  (parent 1855)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 1907)
  (parent 1859)
  (seen 1861)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1908)
  (parent 1862)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 0) (2 0)) ((5 3) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1909)
  (parent 1863)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1910)
  (parent 1864)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1911)
  (parent 1865)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1912)
  (parent 1867)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1913)
  (parent 1870)
  (seen 1960 1961 1962)
  (unrealized (9 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1914)
  (parent 1871)
  (seen 1964 1965 1966)
  (unrealized (8 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1915)
  (parent 1872)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 1916)
  (parent 1872)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1917)
  (parent 1872)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1918)
  (parent 1875)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (6 2)) ((4 1) (2 0)) ((5 2) (0 0))
    ((6 3) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1919)
  (parent 1876)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1920)
  (parent 1878)
  (seen 1971 1972)
  (unrealized (9 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (8 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1921)
  (parent 1879)
  (seen 1859)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1922)
  (parent 1879)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1923)
  (parent 1879)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (5 1)) ((3 3) (7 2)) ((4 1) (2 0)) ((5 2) (4 0))
    ((6 2) (0 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1924)
  (parent 1881)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-3 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1925)
  (parent 1883)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1926)
  (parent 1883)
  (seen 1883)
  (unrealized (2 0) (8 2))
  (comment "13 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1927)
  (parent 1883)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (8 1)) ((7 3) (4 2)) ((8 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1928)
  (parent 1883)
  (seen 1828)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1929)
  (parent 1883)
  (seen 1931)
  (unrealized (8 0))
  (comment "4 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1930)
  (parent 1883)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1931)
  (parent 1885)
  (seen 1939 1962 1966)
  (unrealized (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1932)
  (parent 1885)
  (seen 1961 1965)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1933)
  (parent 1885)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1934)
  (parent 1886)
  (seen 1972)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1935)
  (parent 1886)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1936)
  (parent 1886)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1937)
  (parent 1887)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1938)
  (parent 1887)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1939)
  (parent 1891)
  (unrealized (7 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1940)
  (parent 1891)
  (seen 1960 1964)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1941)
  (parent 1891)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (8 0)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1942)
  (parent 1892)
  (seen 1971)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1943)
  (parent 1892)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1944)
  (parent 1892)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1945)
  (parent 1893)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1946)
  (parent 1893)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1947)
  (parent 1896)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1948)
  (parent 1898)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1949)
  (parent 1899)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1950)
  (parent 1899)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1951)
  (parent 1899)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1952)
  (parent 1900)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1953)
  (parent 1902)
  (seen 1918)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1954)
  (parent 1903)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1955)
  (parent 1903)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1956)
  (parent 1903)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1957)
  (parent 1908)
  (seen 1789)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1958)
  (parent 1909)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1959)
  (parent 1912)
  (seen 2002 2005)
  (unrealized (9 2))
  (comment "5 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (9 2)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1960)
  (parent 1913)
  (seen 1901)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (9 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 2) (0 0))
    ((9 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1961)
  (parent 1913)
  (seen 1897)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (7 1)) ((6 3) (9 2)) ((7 2) (5 0)) ((8 2) (0 0))
    ((9 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1962)
  (parent 1913)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1963)
  (parent 1913)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (8 2)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1964)
  (parent 1914)
  (seen 1902)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (8 2)) ((5 1) (2 0))
    ((6 3) (3 2)) ((6 3) (5 0)) ((7 2) (0 0)) ((8 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1965)
  (parent 1914)
  (seen 1898)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((5 1) (2 0))
    ((6 3) (5 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 1966)
  (parent 1914)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (5 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1967)
  (parent 1914)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 1968)
  (parent 1916)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1969)
  (parent 1918)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 0) (2 0)) ((6 3) (1 3)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1970)
  (parent 1919)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (9 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1971)
  (parent 1920)
  (seen 1905)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (7 1)) ((4 3) (9 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0))
    ((9 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 1972)
  (parent 1920)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 1973)
  (parent 1920)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 1)) ((3 3) (7 2)) ((4 1) (2 0))
    ((5 2) (4 0)) ((6 2) (0 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1974)
  (parent 1922)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 1975)
  (parent 1924)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 1976)
  (parent 1925)
  (seen 1863)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 3) (2 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1977)
  (parent 1926)
  (unrealized (2 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 1978)
  (parent 1927)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1979)
  (parent 1929)
  (seen 1931 1939 2018 2019)
  (unrealized (8 0) (9 2))
  (comment "87 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (8 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 1980)
  (parent 1929)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1981)
  (parent 1929)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1982)
  (parent 1930)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 1983)
  (parent 1930)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1984)
  (parent 1930)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1985)
  (parent 1931)
  (seen 1931 1939 2019)
  (unrealized (7 0) (9 2))
  (comment "57 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1986)
  (parent 1931)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1987)
  (parent 1932)
  (seen 1932 2019)
  (unrealized (7 0) (9 2))
  (comment "29 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1988)
  (parent 1932)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1989)
  (parent 1934)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1990)
  (parent 1934)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1991)
  (parent 1939)
  (seen 1939)
  (unrealized (7 0) (9 2))
  (comment "13 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1992)
  (parent 1939)
  (seen 1897)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (9 1)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 1993)
  (parent 1939)
  (seen 1927)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 1994)
  (parent 1939)
  (seen 1898)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1995)
  (parent 1939)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 1996)
  (parent 1940)
  (seen 1940)
  (unrealized (7 0) (9 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 1997)
  (parent 1940)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 1998)
  (parent 1942)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 1999)
  (parent 1942)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 0) (6 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2000)
  (parent 1948)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2001)
  (parent 1949)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2002)
  (parent 1949)
  (seen 1922)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (7 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2003)
  (parent 1949)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2004)
  (parent 1954)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2005)
  (parent 1954)
  (seen 1921)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2006)
  (parent 1954)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 0) (1 3)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2007)
  (parent 1958)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2008)
  (parent 1959)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 2)) ((4 1) (2 0)) ((5 3) (6 1))
    ((5 3) (8 2)) ((6 2) (4 0)) ((7 2) (0 0)) ((8 3) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2009)
  (parent 1962)
  (seen 1978)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 2)) ((4 1) (2 0)) ((5 3) (4 0))
    ((5 3) (7 2)) ((6 2) (0 0)) ((7 3) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2010)
  (parent 1966)
  (seen 2044)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2011)
  (parent 1968)
  (seen 2046 2047 2048)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2012)
  (parent 1969)
  (seen 1817)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (1 3)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2013)
  (parent 1970)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (6 1)) ((3 3) (8 2)) ((4 1) (2 0))
    ((5 1) (4 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2014)
  (parent 1972)
  (seen 1974)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0))
    ((5 2) (0 0)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2015)
  (parent 1974)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 0) (2 0)) ((6 3) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2016)
  (parent 1975)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2017)
  (parent 1978)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2018)
  (parent 1979)
  (unrealized (8 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2019)
  (parent 1979)
  (unrealized (8 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2020)
  (parent 1979)
  (unrealized (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2021)
  (parent 1980)
  (seen 1919)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2022)
  (parent 1981)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2023)
  (parent 1981)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2024)
  (parent 1981)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2025)
  (parent 1982)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0))))
  (label 2026)
  (parent 1982)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2027)
  (parent 1982)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2028)
  (parent 1985)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (8 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2029)
  (parent 1986)
  (seen 2048)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2030)
  (parent 1986)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (4 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2031)
  (parent 1986)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2032)
  (parent 1987)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2033)
  (parent 1988)
  (seen 2047)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2034)
  (parent 1988)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2035)
  (parent 1988)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2036)
  (parent 1991)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2037)
  (parent 1995)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2038)
  (parent 1995)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2039)
  (parent 1995)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2040)
  (parent 1996)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (8 2))
    ((5 3) (9 0)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2041)
  (parent 1997)
  (seen 2046)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2042)
  (parent 1997)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (8 2)) ((6 3) (2 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2043)
  (parent 1997)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2044)
  (parent 2000)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2045)
  (parent 2007)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((3 3) (10 2)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2046)
  (parent 2011)
  (seen 2005)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (8 1)) ((4 3) (10 2))
    ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2047)
  (parent 2011)
  (seen 2002)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (2 0)) ((6 3) (5 0)) ((6 3) (10 2)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (3 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2048)
  (parent 2011)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (9 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (3 2)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2049)
  (parent 2011)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 0) (1 3)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2050)
  (parent 2013)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0))
    ((5 2) (0 0)) ((6 0) (2 0)) ((6 3) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2051)
  (parent 2015)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 3) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2052)
  (parent 2016)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2053)
  (parent 2017)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain")))))
  (label 2054)
  (parent 2018)
  (seen 2018)
  (unrealized (8 0) (10 2))
  (comment "19 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2055)
  (parent 2018)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (8 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 1 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2056)
  (parent 2018)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2057)
  (parent 2018)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain")))))
  (label 2058)
  (parent 2019)
  (seen 2019)
  (unrealized (8 0) (10 2))
  (comment "57 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2059)
  (parent 2019)
  (seen 1992)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((7 3) (10 1)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2060)
  (parent 2019)
  (seen 1993)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (8 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 1 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2061)
  (parent 2019)
  (seen 1994)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0)) ((9 3) (6 2))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2062)
  (parent 2019)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2063)
  (parent 2022)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (10 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 1) (8 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 2064)
  (parent 2022)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2065)
  (parent 2022)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (8 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 2) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0))))
  (label 2066)
  (parent 2026)
  (seen 1974)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2067)
  (parent 2029)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (4 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2068)
  (parent 2029)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2069)
  (parent 2033)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2070)
  (parent 2033)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2071)
  (parent 2037)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (10 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 2072)
  (parent 2037)
  (seen 2002)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (8 2)) ((5 0) (1 0))
    ((5 3) (6 2)) ((5 3) (9 0)) ((6 3) (4 2)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2073)
  (parent 2037)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2074)
  (parent 2041)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0)) ((6 3) (4 2))
    ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2075)
  (parent 2041)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2076)
  (parent 2044)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2077)
  (parent 2045)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 2)) ((3 3) (7 1)) ((4 1) (2 0))
    ((5 3) (4 0)) ((5 3) (9 2)) ((6 1) (4 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2078)
  (parent 2048)
  (seen 2066)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2079)
  (parent 2050)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0))
    ((5 2) (0 0)) ((6 3) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2080)
  (parent 2051)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 0) (1 3)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2081)
  (parent 2052)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0))
    ((5 3) (6 2)) ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2082)
  (parent 2053)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-7) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain"))))
    ((send tpm-6 (cat "token" nonce-5))
      (recv tpm-6 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2083)
  (parent 2054)
  (unrealized (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2084)
  (parent 2055)
  (seen 2009)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2085)
  (parent 2056)
  (seen 2010)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 5 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2086)
  (parent 2057)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 2087)
  (parent 2057)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2088)
  (parent 2057)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-7) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain"))))
    ((send tpm-6 (cat "token" nonce-5))
      (recv tpm-6 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2089)
  (parent 2058)
  (unrealized (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 5 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2090)
  (parent 2062)
  (unrealized (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 2091)
  (parent 2062)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2092)
  (parent 2062)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((5 3) (9 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2093)
  (parent 2064)
  (seen 2014)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2094)
  (parent 2076)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 2)) ((4 2) (0 0)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2095)
  (parent 2077)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2096)
  (parent 2079)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0))
    ((5 2) (0 0)) ((6 0) (1 3)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2097)
  (parent 2080)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2098)
  (parent 2081)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2099)
  (parent 2082)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 2100)
  (parent 2086)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0)) ((5 3) (9 2))
    ((5 3) (11 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1))))
  (label 2101)
  (parent 2086)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (6 2)) ((5 0) (1 0))
    ((5 3) (9 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2102)
  (parent 2086)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 2103)
  (parent 2090)
  (unrealized (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0)) ((5 3) (7 2))
    ((5 3) (11 1)) ((6 3) (2 0)) ((7 3) (4 2)) ((8 1) (2 0))
    ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1))))
  (label 2104)
  (parent 2090)
  (seen 2072)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (11 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (9 2)) ((5 0) (1 0))
    ((5 3) (7 2)) ((5 3) (10 0)) ((6 3) (2 0)) ((7 3) (4 2))
    ((8 1) (2 0)) ((9 3) (6 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2105)
  (parent 2090)
  (unrealized (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2106)
  (parent 2094)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 0) (4 0)) ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2107)
  (parent 2095)
  (seen 1957)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (6 2)) ((4 1) (2 0)) ((5 2) (0 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2108)
  (parent 2096)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0))
    ((5 2) (0 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2109)
  (parent 2097)
  (seen 2098)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 0) (5 0)) ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2110)
  (parent 2098)
  (seen 1861)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0))
    ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (6 2)) ((6 3) (4 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((1 2) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2111)
  (parent 2099)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (8 2))
    ((5 3) (10 1)) ((6 3) (4 2)) ((7 1) (2 0)) ((8 3) (6 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 2112)
  (parent 2101)
  (seen 2078)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2113)
  (parent 2106)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 0) (5 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 2114)
  (parent 2108)
  (seen 2012)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0))
    ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (6 2))
    ((6 3) (4 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2115)
  (parent 2111)
  (seen 1794)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2116)
  (parent 2113)
  (seen 1953)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(comment "Nothing left to do")

(defprotocol envelope-plus basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false))))
  (defrule ordered-extends
    (forall ((y z strd) (pcr locn))
      (implies
        (and (p "tpm-extend-enc" y 4) (p "tpm-extend-enc" z 4)
          (p "tpm-extend-enc" "pcr" y pcr)
          (p "tpm-extend-enc" "pcr" z pcr))
        (or (= y z) (prec y 3 z 2) (prec z 3 y 2))))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 2117)
  (unrealized (0 0) (1 0) (2 3))
  (preskeleton)
  (origs (v (2 4)) (n (2 1)))
  (comment "Not a skeleton"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 2118)
  (parent 2117)
  (unrealized (0 0) (2 3))
  (origs (v (2 4)) (n (2 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 3))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 2119)
  (parent 2118)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 2120)
  (parent 2119)
  (unrealized (0 0) (1 0) (3 0) (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (displaced 4 2 alice 3)
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 2121)
  (parent 2119)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)) ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2122)
  (parent 2119)
  (unrealized (0 0) (1 0) (4 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 2123)
  (parent 2120)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg) (pcr-id pcr-id-0 nonce pcr-id-1 text)
    (n v data) (pt pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt) (k k) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-0))
      (load pcr (cat pt current-value)) (send v)))
  (label 2124)
  (parent 2121)
  (unrealized (0 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 2125)
  (parent 2122)
  (unrealized (0 0) (1 0) (4 0) (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 1) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2126)
  (parent 2122)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 2127)
  (parent 2123)
  (unrealized (0 0) (1 0) (2 0) (3 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (genStV (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 5 3 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-0) (4 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
  (label 2128)
  (parent 2124)
  (unrealized (0 0) (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id-0) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 2129)
  (parent 2125)
  (unrealized (0 0) (1 0) (2 0) (4 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2130)
  (parent 2127)
  (unrealized (0 0) (1 0) (2 0) (3 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2131)
  (parent 2127)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 2 alice 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 2132)
  (parent 2127)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2133)
  (parent 2127)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
  (label 2134)
  (parent 2128)
  (unrealized (0 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (6 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0))
    ((6 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2135)
  (parent 2129)
  (unrealized (0 0) (1 0) (2 0) (4 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 2136)
  (parent 2129)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0))
    ((6 1) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2137)
  (parent 2129)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (3 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2138)
  (parent 2130)
  (unrealized (0 0) (1 0) (2 0) (3 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2139)
  (parent 2131)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (2 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 2140)
  (parent 2132)
  (unrealized (0 0) (1 0) (3 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 0))
    ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2141)
  (parent 2133)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2142)
  (parent 2133)
  (unrealized (0 0) (1 0) (2 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2143)
  (parent 2133)
  (unrealized (0 0) (1 0) (2 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 2144)
  (parent 2134)
  (unrealized (0 0) (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 2145)
  (parent 2136)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2146)
  (parent 2139)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 2147)
  (parent 2140)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2148)
  (parent 2140)
  (unrealized (0 0) (1 0) (3 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2149)
  (parent 2140)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2150)
  (parent 2140)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2151)
  (parent 2140)
  (unrealized (0 0) (1 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2152)
  (parent 2141)
  (unrealized (0 0) (1 0) (2 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 2153)
  (parent 2141)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2154)
  (parent 2141)
  (unrealized (0 0) (1 0) (2 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (6 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 2155)
  (parent 2144)
  (unrealized (0 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-1) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-1 current-value)) (send v)))
  (label 2156)
  (parent 2145)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2157)
  (parent 2146)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-0) (tpm tpm-0)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-0))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2158)
  (parent 2147)
  (unrealized (0 0) (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (3 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2159)
  (parent 2148)
  (unrealized (0 0) (1 0) (3 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2160)
  (parent 2149)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2161)
  (parent 2150)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2162)
  (parent 2150)
  (seen 2161 2179)
  (unrealized (0 0) (1 0) (6 0) (7 2))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2163)
  (parent 2150)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2164)
  (parent 2150)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2165)
  (parent 2151)
  (unrealized (0 0) (1 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2166)
  (parent 2151)
  (unrealized (0 0) (1 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2167)
  (parent 2151)
  (unrealized (0 0) (1 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 2168)
  (parent 2153)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (2 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 2169)
  (parent 2155)
  (unrealized (0 0) (3 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2170)
  (parent 2156)
  (unrealized (0 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2171)
  (parent 2157)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2172)
  (parent 2157)
  (seen 2171 2196 2197)
  (unrealized (0 0) (8 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-0) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2173)
  (parent 2158)
  (unrealized (0 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2174)
  (parent 2160)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2175)
  (parent 2161)
  (unrealized (0 0) (1 0) (6 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2176)
  (parent 2161)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2177)
  (parent 2161)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2178)
  (parent 2161)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2179)
  (parent 2162)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2180)
  (parent 2162)
  (unrealized (0 0) (1 0) (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2181)
  (parent 2163)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2182)
  (parent 2164)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2183)
  (parent 2164)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2184)
  (parent 2164)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2185)
  (parent 2165)
  (unrealized (0 0) (1 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 2186)
  (parent 2165)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2187)
  (parent 2165)
  (unrealized (0 0) (1 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2188)
  (parent 2168)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 2189)
  (parent 2169)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 2190)
  (parent 2169)
  (seen 2199 2201)
  (unrealized (0 0) (3 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2191)
  (parent 2169)
  (seen 2190 2223 2224)
  (unrealized (0 0) (3 0) (7 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2192)
  (parent 2169)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2193)
  (parent 2169)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 2194)
  (parent 2170)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2195)
  (parent 2171)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2196)
  (parent 2172)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2197)
  (parent 2172)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2198)
  (parent 2172)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2199)
  (parent 2173)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2200)
  (parent 2173)
  (seen 2199 2239 2240)
  (unrealized (0 0) (7 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2201)
  (parent 2174)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2202)
  (parent 2174)
  (seen 2201 2243 2244)
  (unrealized (0 0) (8 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2203)
  (parent 2175)
  (unrealized (0 0) (1 0) (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2204)
  (parent 2176)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2205)
  (parent 2177)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2206)
  (parent 2178)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2207)
  (parent 2178)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2208)
  (parent 2178)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2209)
  (parent 2179)
  (seen 2179)
  (unrealized (0 0) (1 0) (6 0) (8 2))
  (comment "3 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2210)
  (parent 2179)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2211)
  (parent 2179)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2212)
  (parent 2179)
  (unrealized (0 0) (1 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2213)
  (parent 2181)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2214)
  (parent 2182)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 2215)
  (parent 2182)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2216)
  (parent 2182)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2217)
  (parent 2186)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2218)
  (parent 2188)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2219)
  (parent 2189)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2220)
  (parent 2190)
  (seen 2190 2223 2264)
  (unrealized (0 0) (3 0) (7 2))
  (comment "7 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2221)
  (parent 2190)
  (seen 2226 2257)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2222)
  (parent 2190)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2223)
  (parent 2191)
  (seen 2240 2244)
  (unrealized (0 0) (3 0))
  (comment "6 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2224)
  (parent 2191)
  (seen 2239 2243 2264)
  (unrealized (0 0) (3 0))
  (comment "6 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2225)
  (parent 2191)
  (unrealized (0 0) (3 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2226)
  (parent 2192)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2227)
  (parent 2192)
  (seen 2226 2282 2283)
  (unrealized (0 0) (7 0) (8 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2228)
  (parent 2192)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2229)
  (parent 2192)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 6 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2230)
  (parent 2193)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2231)
  (parent 2193)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2232)
  (parent 2193)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 2233)
  (parent 2194)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2234)
  (parent 2194)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2235)
  (parent 2195)
  (seen 2293 2294)
  (unrealized (9 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2236)
  (parent 2196)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2237)
  (parent 2197)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2238)
  (parent 2199)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2239)
  (parent 2200)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 3) (1 0)) ((7 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2240)
  (parent 2200)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (6 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2241)
  (parent 2200)
  (unrealized (0 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2242)
  (parent 2201)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2243)
  (parent 2202)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2244)
  (parent 2202)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2245)
  (parent 2202)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2246)
  (parent 2204)
  (seen 2279)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2247)
  (parent 2205)
  (seen 2280)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2248)
  (parent 2206)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 2249)
  (parent 2206)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2250)
  (parent 2206)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2251)
  (parent 2209)
  (unrealized (0 0) (1 0) (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-4) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-4 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 2252)
  (parent 2210)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 2253)
  (parent 2211)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2254)
  (parent 2212)
  (unrealized (0 0) (1 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2255)
  (parent 2212)
  (unrealized (0 0) (1 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2256)
  (parent 2212)
  (unrealized (0 0) (1 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2257)
  (parent 2213)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2258)
  (parent 2213)
  (seen 2257 2313 2314)
  (unrealized (0 0) (8 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2259)
  (parent 2215)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2260)
  (parent 2217)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2261)
  (parent 2218)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2262)
  (parent 2218)
  (seen 2261 2320 2321)
  (unrealized (0 0) (9 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2263)
  (parent 2219)
  (seen 2323 2324)
  (unrealized (8 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2264)
  (parent 2220)
  (unrealized (0 0) (3 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2265)
  (parent 2220)
  (unrealized (0 0) (3 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2266)
  (parent 2221)
  (seen 2226 2282 2332)
  (unrealized (0 0) (7 0) (8 2))
  (comment "7 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2267)
  (parent 2221)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 6 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2268)
  (parent 2222)
  (seen 2317)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2269)
  (parent 2222)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2270)
  (parent 2222)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2271)
  (parent 2223)
  (seen 2223 2339)
  (unrealized (0 0) (3 0) (8 2))
  (comment "15 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2272)
  (parent 2223)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2273)
  (parent 2223)
  (seen 2314)
  (unrealized (0 0) (8 0))
  (comment "4 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2274)
  (parent 2223)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2275)
  (parent 2224)
  (seen 2224 2264 2339)
  (unrealized (0 0) (3 0) (8 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2276)
  (parent 2224)
  (seen 2283 2313)
  (unrealized (0 0) (8 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2277)
  (parent 2224)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2278)
  (parent 2226)
  (seen 2226 2282 2354)
  (unrealized (0 0) (7 0) (8 2))
  (comment "7 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2279)
  (parent 2226)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2280)
  (parent 2226)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2281)
  (parent 2226)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2282)
  (parent 2227)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2283)
  (parent 2227)
  (seen 2354)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2284)
  (parent 2227)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2285)
  (parent 2228)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2286)
  (parent 2229)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2287)
  (parent 2229)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2288)
  (parent 2229)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2289)
  (parent 2230)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 2290)
  (parent 2230)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2291)
  (parent 2230)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2292)
  (parent 2233)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2293)
  (parent 2235)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (4 0)) (pt-0 (4 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2294)
  (parent 2235)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (4 0)) (pt-0 (4 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1))
    ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2295)
  (parent 2235)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2296)
  (parent 2236)
  (seen 2376 2377 2378)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2297)
  (parent 2237)
  (seen 2380 2381 2382)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2298)
  (parent 2238)
  (seen 2384 2385)
  (unrealized (8 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2299)
  (parent 2239)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 3) (1 0)) ((7 3) (4 2)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2300)
  (parent 2240)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2301)
  (parent 2242)
  (seen 2389 2390)
  (unrealized (9 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2302)
  (parent 2243)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2303)
  (parent 2244)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2304)
  (parent 2246)
  (seen 2279 2362 2367)
  (unrealized (0 0) (9 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2305)
  (parent 2247)
  (seen 2280 2364 2368)
  (unrealized (0 0) (8 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 2306)
  (parent 2249)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-4 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2307)
  (parent 2252)
  (unrealized (0 0) (9 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2308)
  (parent 2253)
  (unrealized (0 0) (8 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2309)
  (parent 2254)
  (unrealized (0 0) (1 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2310)
  (parent 2254)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2311)
  (parent 2254)
  (unrealized (0 0) (1 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2312)
  (parent 2257)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2313)
  (parent 2258)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2314)
  (parent 2258)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2315)
  (parent 2258)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2316)
  (parent 2259)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2317)
  (parent 2260)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2318)
  (parent 2260)
  (seen 2317 2410 2411)
  (unrealized (0 0) (9 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2319)
  (parent 2261)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2320)
  (parent 2262)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2321)
  (parent 2262)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2322)
  (parent 2262)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2323)
  (parent 2263)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (8 0)) (pt-2 (8 3))
    (nonce-0 (5 0)) (pt (5 3)) (k (3 1)) (n (2 1)) (v (2 4))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 2)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2324)
  (parent 2263)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (8 0)) (pt-2 (8 3))
    (nonce-0 (5 0)) (pt (5 3)) (k (3 1)) (n (2 1)) (v (2 4))))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2325)
  (parent 2263)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-2 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2326)
  (parent 2264)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2327)
  (parent 2264)
  (seen 2264 2339)
  (unrealized (0 0) (3 0) (8 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2328)
  (parent 2264)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2329)
  (parent 2264)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2330)
  (parent 2264)
  (seen 2332)
  (unrealized (0 0) (8 0))
  (comment "4 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2331)
  (parent 2264)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2332)
  (parent 2266)
  (seen 2354 2397 2400)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2333)
  (parent 2266)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2334)
  (parent 2267)
  (seen 2407)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2335)
  (parent 2267)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2336)
  (parent 2267)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2337)
  (parent 2268)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2338)
  (parent 2268)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2339)
  (parent 2271)
  (unrealized (0 0) (3 0))
  (comment "7 in cohort - 7 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (3 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2340)
  (parent 2271)
  (unrealized (0 0) (3 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2341)
  (parent 2272)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2342)
  (parent 2273)
  (seen 2282 2398 2401)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2343)
  (parent 2273)
  (seen 2282 2342 2440 2441)
  (unrealized (0 0) (8 0) (9 2))
  (comment "27 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2344)
  (parent 2273)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2345)
  (parent 2274)
  (seen 2411)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2346)
  (parent 2274)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2347)
  (parent 2274)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 3) (3 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2348)
  (parent 2275)
  (unrealized (0 0) (3 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2349)
  (parent 2276)
  (seen 2283 2354 2448 2449)
  (unrealized (0 0) (8 0) (9 2))
  (comment "25 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2350)
  (parent 2276)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2351)
  (parent 2277)
  (seen 2410)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2352)
  (parent 2277)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2353)
  (parent 2277)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2354)
  (parent 2278)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 2355)
  (parent 2278)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2356)
  (parent 2279)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2357)
  (parent 2280)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2358)
  (parent 2281)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2359)
  (parent 2281)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2360)
  (parent 2281)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2361)
  (parent 2282)
  (seen 2282 2448)
  (unrealized (0 0) (7 0) (9 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2362)
  (parent 2282)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2363)
  (parent 2282)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2364)
  (parent 2282)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2365)
  (parent 2282)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2366)
  (parent 2283)
  (seen 2283 2354 2448)
  (unrealized (0 0) (7 0) (9 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2367)
  (parent 2283)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2368)
  (parent 2283)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2369)
  (parent 2283)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2370)
  (parent 2285)
  (seen 2479 2480)
  (unrealized (9 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2371)
  (parent 2286)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 2372)
  (parent 2286)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2373)
  (parent 2286)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2374)
  (parent 2290)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2375)
  (parent 2292)
  (seen 2484 2485)
  (unrealized (10 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2376)
  (parent 2296)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((8 3) (10 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2377)
  (parent 2296)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (10 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (8 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2378)
  (parent 2296)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2379)
  (parent 2296)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((4 3) (10 2)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2380)
  (parent 2297)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (10 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0)) ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2381)
  (parent 2297)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (10 2)) ((9 2) (0 0)) ((10 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2382)
  (parent 2297)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0))
    ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2383)
  (parent 2297)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2384)
  (parent 2298)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2385)
  (parent 2298)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (6 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2386)
  (parent 2298)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2387)
  (parent 2299)
  (seen 2489 2490 2491)
  (unrealized (9 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 3) (1 0)) ((7 3) (4 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2388)
  (parent 2300)
  (seen 2493 2494 2495)
  (unrealized (9 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2389)
  (parent 2301)
  (seen 2293)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2390)
  (parent 2301)
  (seen 2294)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (7 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2391)
  (parent 2301)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2392)
  (parent 2302)
  (seen 2497 2498 2499)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2393)
  (parent 2303)
  (seen 2501 2502 2503)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2394)
  (parent 2304)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2395)
  (parent 2305)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2396)
  (parent 2306)
  (seen 2464)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2397)
  (parent 2307)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2398)
  (parent 2307)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2399)
  (parent 2307)
  (seen 2397 2398 2508 2509 2510)
  (unrealized (0 0) (10 2))
  (comment "33 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2400)
  (parent 2308)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2401)
  (parent 2308)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2402)
  (parent 2308)
  (seen 2400 2401 2514 2515 2516)
  (unrealized (0 0) (9 2))
  (comment "33 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-4) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-4 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 2403)
  (parent 2310)
  (unrealized (0 0) (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2404)
  (parent 2312)
  (seen 2519 2520)
  (unrealized (9 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2405)
  (parent 2313)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2406)
  (parent 2314)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2407)
  (parent 2316)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2408)
  (parent 2316)
  (seen 2407 2525 2526)
  (unrealized (0 0) (10 2))
  (comment "7 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2409)
  (parent 2317)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2410)
  (parent 2318)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2411)
  (parent 2318)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2412)
  (parent 2318)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2413)
  (parent 2319)
  (seen 2531 2532)
  (unrealized (10 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2414)
  (parent 2320)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (4 2))
    ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2415)
  (parent 2321)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2416)
  (parent 2326)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 3) (3 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2417)
  (parent 2327)
  (unrealized (0 0) (3 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2418)
  (parent 2328)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (3 0)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2419)
  (parent 2329)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2420)
  (parent 2330)
  (seen 2332 2354 2448 2539)
  (unrealized (0 0) (8 0) (9 2))
  (comment "25 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2421)
  (parent 2330)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2422)
  (parent 2330)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (5 2)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2423)
  (parent 2331)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2424)
  (parent 2331)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2425)
  (parent 2331)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2426)
  (parent 2332)
  (seen 2332 2354 2448)
  (unrealized (0 0) (7 0) (9 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2427)
  (parent 2332)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2428)
  (parent 2334)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2429)
  (parent 2334)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-3 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2430)
  (parent 2339)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2431)
  (parent 2339)
  (seen 2339)
  (unrealized (0 0) (3 0) (9 2))
  (comment "39 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2432)
  (parent 2339)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (9 1)) ((8 3) (5 2)) ((9 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2433)
  (parent 2339)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 2434)
  (parent 2339)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2435)
  (parent 2339)
  (seen 2440)
  (unrealized (0 0) (9 0))
  (comment "4 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2436)
  (parent 2339)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2437)
  (parent 2341)
  (seen 2563 2564 2565)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2438)
  (parent 2342)
  (seen 2282 2342 2441 2567)
  (unrealized (0 0) (8 0) (9 2))
  (comment "27 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2439)
  (parent 2342)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (5 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2440)
  (parent 2343)
  (seen 2510 2516 2567)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2441)
  (parent 2343)
  (seen 2509 2515)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2442)
  (parent 2343)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 0)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2443)
  (parent 2344)
  (seen 2526)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2444)
  (parent 2344)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2445)
  (parent 2344)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2446)
  (parent 2345)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2447)
  (parent 2345)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2448)
  (parent 2349)
  (unrealized (0 0) (8 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2449)
  (parent 2349)
  (seen 2508 2514)
  (unrealized (0 0) (8 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2450)
  (parent 2349)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2451)
  (parent 2350)
  (seen 2525)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2452)
  (parent 2350)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2453)
  (parent 2350)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2454)
  (parent 2351)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((7 3) (5 2)) ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2455)
  (parent 2351)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2456)
  (parent 2354)
  (seen 2354 2448)
  (unrealized (0 0) (7 0) (9 2))
  (comment "15 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2457)
  (parent 2354)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2458)
  (parent 2354)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2459)
  (parent 2354)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2460)
  (parent 2354)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2461)
  (parent 2356)
  (seen 2596 2597)
  (unrealized (10 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2462)
  (parent 2357)
  (seen 2599 2600)
  (unrealized (9 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2463)
  (parent 2358)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 2464)
  (parent 2358)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2465)
  (parent 2358)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2466)
  (parent 2361)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((9 2) (7 0))
    ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2467)
  (parent 2362)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2468)
  (parent 2363)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2469)
  (parent 2364)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 0)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2470)
  (parent 2365)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2471)
  (parent 2365)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2472)
  (parent 2365)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2473)
  (parent 2366)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2474)
  (parent 2367)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2475)
  (parent 2368)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2476)
  (parent 2369)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2477)
  (parent 2369)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2478)
  (parent 2369)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2479)
  (parent 2370)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (9 0)) (pt-2 (9 3))
    (n (2 1)) (k-0 (7 1)) (nonce-0 (5 0)) (pt (5 3)) (k (3 1))
    (v (2 4))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (5 2))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2480)
  (parent 2370)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (9 0)) (pt-2 (9 3))
    (n (2 1)) (k-0 (7 1)) (nonce-0 (5 0)) (pt (5 3)) (k (3 1))
    (v (2 4))))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2481)
  (parent 2370)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2482)
  (parent 2372)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2483)
  (parent 2374)
  (seen 2615 2616)
  (unrealized (10 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((8 3) (10 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2484)
  (parent 2375)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (8 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2485)
  (parent 2375)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (8 2)) ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt-0 pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2486)
  (parent 2375)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2487)
  (parent 2384)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (3 0))
    ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2488)
  (parent 2385)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2489)
  (parent 2387)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2490)
  (parent 2387)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2491)
  (parent 2387)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (6 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (7 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2492)
  (parent 2387)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (4 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2493)
  (parent 2388)
  (seen 2384)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 3) (1 0)) ((7 3) (4 2)) ((8 2) (0 0)) ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2494)
  (parent 2388)
  (seen 2385)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2495)
  (parent 2388)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (6 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (4 2)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2496)
  (parent 2388)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2497)
  (parent 2392)
  (seen 2376)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((8 3) (10 2)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2498)
  (parent 2392)
  (seen 2377)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (8 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2499)
  (parent 2392)
  (seen 2378)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2500)
  (parent 2392)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2501)
  (parent 2393)
  (seen 2380)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0))
    ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2502)
  (parent 2393)
  (seen 2381)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (10 2)) ((9 2) (0 0))
    ((10 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2503)
  (parent 2393)
  (seen 2382)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (4 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2504)
  (parent 2393)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2505)
  (parent 2396)
  (seen 2464 2607 2612)
  (unrealized (0 0) (10 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2506)
  (parent 2397)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2507)
  (parent 2398)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2508)
  (parent 2399)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2509)
  (parent 2399)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2510)
  (parent 2399)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2511)
  (parent 2399)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2512)
  (parent 2400)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2513)
  (parent 2401)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2514)
  (parent 2402)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2515)
  (parent 2402)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 3) (1 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2516)
  (parent 2402)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2517)
  (parent 2402)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 11 3 tpm-create-key 2)
    (enc "created" k pcr-id-4 current-value aik-2) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2518)
  (parent 2403)
  (unrealized (0 0) (10 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2519)
  (parent 2404)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2520)
  (parent 2404)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (6 0)) ((2 4) (7 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2521)
  (parent 2404)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2522)
  (parent 2405)
  (seen 2642 2643 2644)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2523)
  (parent 2406)
  (seen 2646 2647 2648)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2524)
  (parent 2407)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2525)
  (parent 2408)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 1))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 2526)
  (parent 2408)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2527)
  (parent 2408)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2528)
  (parent 2409)
  (seen 2653 2654)
  (unrealized (10 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2529)
  (parent 2410)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2530)
  (parent 2411)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2531)
  (parent 2413)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 2) (0 0))
    ((10 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2532)
  (parent 2413)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2533)
  (parent 2413)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2534)
  (parent 2414)
  (seen 2660 2661 2662)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (4 2))
    ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2535)
  (parent 2415)
  (seen 2664 2665 2666)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2536)
  (parent 2416)
  (seen 2668 2669 2670)
  (unrealized (9 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2537)
  (parent 2418)
  (seen 2672 2673 2674)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2538)
  (parent 2419)
  (seen 2676 2677 2678)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2539)
  (parent 2420)
  (unrealized (0 0) (8 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2540)
  (parent 2420)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2541)
  (parent 2421)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2542)
  (parent 2422)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2543)
  (parent 2422)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2544)
  (parent 2422)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2545)
  (parent 2423)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0))))
  (label 2546)
  (parent 2423)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2547)
  (parent 2423)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2548)
  (parent 2426)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2549)
  (parent 2427)
  (seen 2637)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2550)
  (parent 2427)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2551)
  (parent 2427)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2552)
  (parent 2430)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 3) (3 0)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2553)
  (parent 2431)
  (unrealized (0 0) (3 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (3 0)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2554)
  (parent 2432)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (9 1)) ((8 3) (5 2)) ((9 2) (3 0))
    ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2555)
  (parent 2433)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 2) (3 0)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2556)
  (parent 2434)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2557)
  (parent 2435)
  (seen 2440 2448 2567 2695 2696)
  (unrealized (0 0) (9 0) (10 2))
  (comment "113 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 2558)
  (parent 2435)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2559)
  (parent 2435)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (9 0)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2560)
  (parent 2436)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2561)
  (parent 2436)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2562)
  (parent 2436)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2563)
  (parent 2437)
  (seen 2390)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2564)
  (parent 2437)
  (seen 2389)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2565)
  (parent 2437)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 1)) ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2566)
  (parent 2437)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2567)
  (parent 2438)
  (seen 2448)
  (unrealized (0 0) (8 0))
  (comment "6 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2568)
  (parent 2438)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2569)
  (parent 2439)
  (seen 2638)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2570)
  (parent 2439)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2571)
  (parent 2439)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (5 2))
    ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2572)
  (parent 2440)
  (seen 2440 2448 2567 2696)
  (unrealized (0 0) (8 0) (10 2))
  (comment "83 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (5 2))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2573)
  (parent 2440)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2574)
  (parent 2441)
  (seen 2441 2696)
  (unrealized (0 0) (8 0) (10 2))
  (comment "47 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2575)
  (parent 2441)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2576)
  (parent 2441)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2577)
  (parent 2443)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2578)
  (parent 2443)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2579)
  (parent 2448)
  (seen 2448)
  (unrealized (0 0) (8 0) (10 2))
  (comment "39 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2580)
  (parent 2448)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (10 1)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2581)
  (parent 2448)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2582)
  (parent 2448)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2583)
  (parent 2448)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2584)
  (parent 2448)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2585)
  (parent 2449)
  (seen 2449)
  (unrealized (0 0) (8 0) (10 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2586)
  (parent 2449)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((7 3) (5 2)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2587)
  (parent 2451)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((7 3) (5 2)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2588)
  (parent 2451)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2589)
  (parent 2456)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2590)
  (parent 2457)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 2) (7 0))
    ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2591)
  (parent 2458)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2592)
  (parent 2459)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2593)
  (parent 2460)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2594)
  (parent 2460)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2595)
  (parent 2460)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2596)
  (parent 2461)
  (seen 2389)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 1) (3 0)) ((8 2) (7 0)) ((9 2) (0 0))
    ((10 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2597)
  (parent 2461)
  (seen 2390)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2598)
  (parent 2461)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2599)
  (parent 2462)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2600)
  (parent 2462)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2601)
  (parent 2462)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2602)
  (parent 2464)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((9 2) (7 0))
    ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2603)
  (parent 2467)
  (seen 2743 2744 2745)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2604)
  (parent 2468)
  (seen 2747 2748 2749)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2605)
  (parent 2469)
  (seen 2751 2752 2753)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2606)
  (parent 2470)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2607)
  (parent 2470)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2608)
  (parent 2470)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2609)
  (parent 2474)
  (seen 2756 2757 2758)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2610)
  (parent 2475)
  (seen 2760 2761 2762)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (5 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2611)
  (parent 2476)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2612)
  (parent 2476)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (5 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2613)
  (parent 2476)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2614)
  (parent 2482)
  (seen 2765 2766)
  (unrealized (11 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2615)
  (parent 2483)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 1)) ((6 3) (10 2)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (5 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2616)
  (parent 2483)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2617)
  (parent 2483)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2618)
  (parent 2484)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt-0 (4 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (7 0)) (pt-1 (7 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (7 2))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2619)
  (parent 2485)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt-0 (4 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (7 0)) (pt-1 (7 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2620)
  (parent 2487)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (3 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2621)
  (parent 2488)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (3 0)) ((8 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2622)
  (parent 2489)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2623)
  (parent 2490)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (6 2))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2624)
  (parent 2491)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2625)
  (parent 2495)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2626)
  (parent 2505)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2627)
  (parent 2506)
  (seen 2776 2777 2778)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2628)
  (parent 2507)
  (seen 2780 2781 2782)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2629)
  (parent 2508)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (7 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2630)
  (parent 2509)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2631)
  (parent 2510)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2632)
  (parent 2512)
  (seen 2787 2788 2789)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2633)
  (parent 2513)
  (seen 2791 2792 2793)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2634)
  (parent 2514)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (7 2)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2635)
  (parent 2515)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2636)
  (parent 2516)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2637)
  (parent 2518)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 2638)
  (parent 2518)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2639)
  (parent 2518)
  (seen 2637 2638 2800 2801 2802)
  (unrealized (0 0) (11 2))
  (comment "33 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2640)
  (parent 2519)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (3 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2641)
  (parent 2520)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2642)
  (parent 2522)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (8 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((8 3) (10 2)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2643)
  (parent 2522)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (8 2)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2644)
  (parent 2522)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2645)
  (parent 2522)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (4 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2646)
  (parent 2523)
  (seen 2519)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (4 2)) ((9 2) (0 0))
    ((10 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2647)
  (parent 2523)
  (seen 2520)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (10 2)) ((9 2) (0 0))
    ((10 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2648)
  (parent 2523)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (4 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2649)
  (parent 2523)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2650)
  (parent 2524)
  (seen 2810 2811)
  (unrealized (11 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2651)
  (parent 2525)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 1))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2652)
  (parent 2526)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2653)
  (parent 2528)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2654)
  (parent 2528)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2655)
  (parent 2528)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2656)
  (parent 2529)
  (seen 2817 2818 2819)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2657)
  (parent 2530)
  (seen 2821 2822 2823)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2658)
  (parent 2531)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (9 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2659)
  (parent 2532)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2660)
  (parent 2534)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2661)
  (parent 2534)
  (seen 2484)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (9 2)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2662)
  (parent 2534)
  (seen 2485)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2663)
  (parent 2534)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2664)
  (parent 2535)
  (seen 2531)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1)) ((5 3) (11 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (4 2))
    ((10 2) (0 0)) ((11 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2665)
  (parent 2535)
  (seen 2532)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (11 2))
    ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2666)
  (parent 2535)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2667)
  (parent 2535)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2668)
  (parent 2536)
  (seen 2384)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 2) (0 0)) ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2669)
  (parent 2536)
  (seen 2385)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2670)
  (parent 2536)
  (seen 2385)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2671)
  (parent 2536)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2672)
  (parent 2537)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2673)
  (parent 2537)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2674)
  (parent 2537)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2675)
  (parent 2537)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2676)
  (parent 2538)
  (seen 2389)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2677)
  (parent 2538)
  (seen 2390)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (10 2)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2678)
  (parent 2538)
  (seen 2390)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2679)
  (parent 2538)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2680)
  (parent 2539)
  (seen 2539)
  (unrealized (0 0) (8 0) (10 2))
  (comment "7 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2681)
  (parent 2539)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2682)
  (parent 2539)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2683)
  (parent 2539)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2684)
  (parent 2541)
  (seen 2838 2839 2840)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2685)
  (parent 2542)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2686)
  (parent 2542)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2687)
  (parent 2542)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2688)
  (parent 2546)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (5 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2689)
  (parent 2549)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (5 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2690)
  (parent 2549)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2691)
  (parent 2552)
  (seen 2844 2845 2846 2847)
  (unrealized (10 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2692)
  (parent 2554)
  (seen 2849 2850 2851 2852)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (9 1)) ((8 3) (5 2)) ((9 2) (3 0))
    ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2693)
  (parent 2555)
  (seen 2854 2855 2856 2857)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2694)
  (parent 2556)
  (seen 2859 2860 2861 2862)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2695)
  (parent 2557)
  (unrealized (0 0) (9 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2696)
  (parent 2557)
  (unrealized (0 0) (9 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (9 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2697)
  (parent 2557)
  (unrealized (0 0) (9 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2698)
  (parent 2558)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 0)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2699)
  (parent 2559)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2700)
  (parent 2559)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2701)
  (parent 2559)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2702)
  (parent 2560)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 2) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0))))
  (label 2703)
  (parent 2560)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 1) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2704)
  (parent 2560)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0))
    ((9 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2705)
  (parent 2565)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 2706)
  (parent 2567)
  (seen 2448 2567 2696)
  (unrealized (0 0) (8 0) (10 2))
  (comment "83 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2707)
  (parent 2567)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2708)
  (parent 2567)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2709)
  (parent 2567)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2710)
  (parent 2567)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2711)
  (parent 2569)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2712)
  (parent 2569)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2713)
  (parent 2572)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2714)
  (parent 2573)
  (seen 2802)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2715)
  (parent 2573)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2716)
  (parent 2573)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2717)
  (parent 2574)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2718)
  (parent 2575)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2719)
  (parent 2576)
  (seen 2801)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2720)
  (parent 2576)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2721)
  (parent 2576)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2722)
  (parent 2579)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2723)
  (parent 2580)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (10 1)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2724)
  (parent 2581)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2725)
  (parent 2582)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2726)
  (parent 2583)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (10 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2727)
  (parent 2584)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2728)
  (parent 2584)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2729)
  (parent 2584)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 3) (8 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2730)
  (parent 2585)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2731)
  (parent 2586)
  (seen 2800)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2732)
  (parent 2586)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2733)
  (parent 2586)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2734)
  (parent 2590)
  (seen 2901 2902 2903)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 2) (7 0))
    ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2735)
  (parent 2591)
  (seen 2905 2906 2907)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2736)
  (parent 2592)
  (seen 2909 2910 2911)
  (unrealized (10 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (5 2)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2737)
  (parent 2593)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 2738)
  (parent 2593)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (5 2)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2739)
  (parent 2593)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (7 0)) ((5 3) (3 0))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2740)
  (parent 2599)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (7 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2741)
  (parent 2600)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2742)
  (parent 2602)
  (seen 2916 2917)
  (unrealized (11 2))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((9 2) (7 0))
    ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2743)
  (parent 2603)
  (seen 2502)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((8 3) (11 2))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2744)
  (parent 2603)
  (seen 2501)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((9 2) (7 0))
    ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2745)
  (parent 2603)
  (seen 2503)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2746)
  (parent 2603)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (11 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2747)
  (parent 2604)
  (seen 2563)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((8 3) (11 2)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2748)
  (parent 2604)
  (seen 2564)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2749)
  (parent 2604)
  (seen 2565)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((5 3) (9 1)) ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2750)
  (parent 2604)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((9 2) (0 0))
    ((10 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2751)
  (parent 2605)
  (seen 2600)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((8 3) (10 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2752)
  (parent 2605)
  (seen 2599)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((9 2) (0 0))
    ((10 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2753)
  (parent 2605)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2754)
  (parent 2605)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2755)
  (parent 2607)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2756)
  (parent 2609)
  (seen 2498)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2757)
  (parent 2609)
  (seen 2497)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((8 3) (11 2))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (5 2)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2758)
  (parent 2609)
  (seen 2499)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2759)
  (parent 2609)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2760)
  (parent 2610)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (7 0))
    ((9 2) (0 0)) ((10 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2761)
  (parent 2610)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)) ((8 3) (10 2))
    ((9 2) (0 0)) ((10 3) (5 2)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2762)
  (parent 2610)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2763)
  (parent 2610)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2764)
  (parent 2612)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2765)
  (parent 2614)
  (seen 2615)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (9 1)) ((6 3) (11 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (5 2)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2766)
  (parent 2614)
  (seen 2616)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2767)
  (parent 2614)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 1)) ((7 2) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2768)
  (parent 2615)
  (seen 2618)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 1)) ((6 3) (9 2)) ((7 2) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2769)
  (parent 2616)
  (seen 2619)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (6 0)) ((4 3) (7 0))
    ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2770)
  (parent 2620)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (6 0)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (3 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2771)
  (parent 2621)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 0) (3 0))
    ((8 3) (2 3)) ((8 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2772)
  (parent 2622)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2773)
  (parent 2623)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (6 2))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2774)
  (parent 2624)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (3 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 0) (3 0))
    ((8 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2775)
  (parent 2625)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2776)
  (parent 2627)
  (seen 2672)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (11 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2777)
  (parent 2627)
  (seen 2673)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (11 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2778)
  (parent 2627)
  (seen 2674)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2779)
  (parent 2627)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2780)
  (parent 2628)
  (seen 2596)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (11 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2781)
  (parent 2628)
  (seen 2597)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (11 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2782)
  (parent 2628)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2783)
  (parent 2628)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2784)
  (parent 2629)
  (seen 2932 2933 2934 2935)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (7 2)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2785)
  (parent 2630)
  (seen 2937 2938 2939 2940)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2786)
  (parent 2631)
  (seen 2942 2943 2944 2945)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2787)
  (parent 2632)
  (seen 2914)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2788)
  (parent 2632)
  (seen 2915)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (10 2)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2789)
  (parent 2632)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2790)
  (parent 2632)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2791)
  (parent 2633)
  (seen 2599)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2792)
  (parent 2633)
  (seen 2600)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (10 2)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2793)
  (parent 2633)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2794)
  (parent 2633)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2795)
  (parent 2634)
  (seen 2949 2950 2951 2952)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (7 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2796)
  (parent 2635)
  (seen 2954 2955 2956 2957)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2797)
  (parent 2636)
  (seen 2959 2960 2961 2962)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2798)
  (parent 2637)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2799)
  (parent 2638)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2800)
  (parent 2639)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2801)
  (parent 2639)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 2802)
  (parent 2639)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2803)
  (parent 2639)
  (unrealized (0 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2804)
  (parent 2640)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (3 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2805)
  (parent 2641)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (9 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (3 0))
    ((9 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2806)
  (parent 2642)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2807)
  (parent 2643)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2808)
  (parent 2644)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2809)
  (parent 2648)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2810)
  (parent 2650)
  (seen 2653)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2811)
  (parent 2650)
  (seen 2654)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2812)
  (parent 2650)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2813)
  (parent 2651)
  (seen 2975 2976 2977)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 1))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2814)
  (parent 2652)
  (seen 2979 2980 2981)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2815)
  (parent 2653)
  (seen 2658)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2816)
  (parent 2654)
  (seen 2659)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (7 1)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2817)
  (parent 2656)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((9 3) (11 2)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2818)
  (parent 2656)
  (seen 2615)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (9 2))
    ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2819)
  (parent 2656)
  (seen 2616)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0))
    ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2820)
  (parent 2656)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2821)
  (parent 2657)
  (seen 2653)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2822)
  (parent 2657)
  (seen 2654)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2823)
  (parent 2657)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2824)
  (parent 2657)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (3 0)) ((4 3) (2 3)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2825)
  (parent 2658)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (3 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2826)
  (parent 2659)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (10 2)) ((5 1) (3 0))
    ((6 2) (5 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (3 0)) ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2827)
  (parent 2660)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (8 2)) ((5 1) (3 0))
    ((6 2) (5 0)) ((7 3) (1 0)) ((8 3) (10 2)) ((9 2) (0 0))
    ((10 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2828)
  (parent 2666)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2829)
  (parent 2672)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0)) ((6 3) (10 2))
    ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2830)
  (parent 2673)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (3 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2831)
  (parent 2674)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2832)
  (parent 2680)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2833)
  (parent 2681)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2834)
  (parent 2682)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2835)
  (parent 2683)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2836)
  (parent 2683)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2837)
  (parent 2683)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2838)
  (parent 2684)
  (seen 2519)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 2) (0 0))
    ((10 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2839)
  (parent 2684)
  (seen 2520)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (10 2)) ((8 1) (3 0)) ((9 2) (0 0))
    ((10 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2840)
  (parent 2684)
  (seen 2520)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2841)
  (parent 2684)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2842)
  (parent 2686)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2843)
  (parent 2688)
  (seen 2998 2999 3000)
  (unrealized (11 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (10 2)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2844)
  (parent 2691)
  (seen 2668)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2845)
  (parent 2691)
  (seen 2669)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2846)
  (parent 2691)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (10 2)) ((9 2) (0 0))
    ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2847)
  (parent 2691)
  (seen 2670)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2848)
  (parent 2691)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (11 2)) ((8 3) (5 2))
    ((8 3) (9 1)) ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2849)
  (parent 2692)
  (seen 2672)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2850)
  (parent 2692)
  (seen 2673)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2851)
  (parent 2692)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (9 1)) ((8 3) (11 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2852)
  (parent 2692)
  (seen 2674)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((8 3) (9 1)) ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2853)
  (parent 2692)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (9 1)) ((7 3) (11 2)) ((8 3) (5 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2854)
  (parent 2693)
  (seen 2501)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 3) (9 1)) ((8 3) (5 2)) ((9 2) (3 0))
    ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2855)
  (parent 2693)
  (seen 2502)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (9 1)) ((8 3) (5 2)) ((9 2) (3 0))
    ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2856)
  (parent 2693)
  (seen 2503)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (9 1)) ((8 3) (11 2)) ((9 2) (3 0))
    ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2857)
  (parent 2693)
  (seen 2502)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (9 1)) ((8 3) (5 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2858)
  (parent 2693)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (11 2))
    ((8 3) (5 2)) ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2859)
  (parent 2694)
  (seen 2676)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (11 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2860)
  (parent 2694)
  (seen 2677)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2861)
  (parent 2694)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (11 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2862)
  (parent 2694)
  (seen 2678)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2863)
  (parent 2694)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)) ((11 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain")))))
  (label 2864)
  (parent 2695)
  (seen 2695)
  (unrealized (0 0) (9 0) (11 2))
  (comment "19 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2865)
  (parent 2695)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 2 alice 3)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2866)
  (parent 2695)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2867)
  (parent 2695)
  (unrealized (0 0) (11 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)) ((11 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain")))))
  (label 2868)
  (parent 2696)
  (seen 2696)
  (unrealized (0 0) (9 0) (11 2))
  (comment "159 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2869)
  (parent 2696)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (11 1))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2870)
  (parent 2696)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((5 3) (11 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 2871)
  (parent 2696)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 2 alice 3)
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 2872)
  (parent 2696)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (9 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2873)
  (parent 2696)
  (unrealized (0 0) (11 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2874)
  (parent 2698)
  (seen 3019 3020 3021 3022)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 1) (9 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2875)
  (parent 2699)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (11 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 2876)
  (parent 2699)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 1) (9 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2877)
  (parent 2699)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2878)
  (parent 2703)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2879)
  (parent 2705)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 3) (8 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2880)
  (parent 2706)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2881)
  (parent 2707)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2882)
  (parent 2708)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2883)
  (parent 2709)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 2884)
  (parent 2710)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2885)
  (parent 2710)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2886)
  (parent 2710)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2887)
  (parent 2714)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2888)
  (parent 2714)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2889)
  (parent 2718)
  (seen 3033 3034 3035 3036)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2890)
  (parent 2719)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2891)
  (parent 2719)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2892)
  (parent 2723)
  (seen 3038 3039 3040 3041)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (10 1)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2893)
  (parent 2724)
  (seen 3043 3044 3045 3046)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2894)
  (parent 2725)
  (seen 3048 3049 3050 3051)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2895)
  (parent 2726)
  (seen 3053 3054 3055 3056)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (10 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2896)
  (parent 2727)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 2897)
  (parent 2727)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (10 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2898)
  (parent 2727)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2899)
  (parent 2731)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (3 0))
    ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2900)
  (parent 2731)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2901)
  (parent 2734)
  (seen 2672)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2902)
  (parent 2734)
  (seen 2673)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1)) ((8 3) (11 2))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2903)
  (parent 2734)
  (seen 2674)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2904)
  (parent 2734)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2905)
  (parent 2735)
  (seen 2676)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 2) (7 0))
    ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2906)
  (parent 2735)
  (seen 2677)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (11 2)) ((9 2) (7 0))
    ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2907)
  (parent 2735)
  (seen 2678)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2908)
  (parent 2735)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2909)
  (parent 2736)
  (seen 2599)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 1) (3 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2910)
  (parent 2736)
  (seen 2600)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (10 2)) ((9 2) (0 0))
    ((10 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2911)
  (parent 2736)
  (seen 2600)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2912)
  (parent 2736)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2913)
  (parent 2738)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2914)
  (parent 2740)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (5 2))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2915)
  (parent 2741)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2916)
  (parent 2742)
  (seen 2653)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (9 1)) ((6 3) (11 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2917)
  (parent 2742)
  (seen 2654)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 2918)
  (parent 2742)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2919)
  (parent 2753)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2920)
  (parent 2755)
  (seen 3063 3064 3065)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2921)
  (parent 2760)
  (seen 2807)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (5 2))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2922)
  (parent 2761)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2923)
  (parent 2762)
  (seen 2808)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2924)
  (parent 2764)
  (seen 3068 3069 3070)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2925)
  (parent 2770)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (3 0))
    ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2926)
  (parent 2771)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (2 3))
    ((8 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2927)
  (parent 2772)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 3) (1 0)) ((6 3) (5 2)) ((6 3) (8 2))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2928)
  (parent 2773)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (7 0))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (6 2)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2929)
  (parent 2774)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (3 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2930)
  (parent 2775)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (7 1)) ((6 3) (10 2)) ((7 2) (5 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2931)
  (parent 2782)
  (seen 2705)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (12 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2932)
  (parent 2784)
  (seen 2757)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((10 3) (12 2))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2933)
  (parent 2784)
  (seen 2756)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (12 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (10 2)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2934)
  (parent 2784)
  (seen 2758)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (12 2))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2935)
  (parent 2784)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2))
    ((5 0) (2 0)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (8 1)) ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2936)
  (parent 2784)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (12 2)) ((5 0) (2 0))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (7 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2937)
  (parent 2785)
  (seen 2744)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (12 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (7 2)) ((11 2) (0 0)) ((12 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2938)
  (parent 2785)
  (seen 2743)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (12 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (7 2)) ((11 2) (0 0)) ((12 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2939)
  (parent 2785)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (10 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (12 2)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2940)
  (parent 2785)
  (seen 2745)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (7 2)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2941)
  (parent 2785)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (12 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2942)
  (parent 2786)
  (seen 2776)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (12 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2943)
  (parent 2786)
  (seen 2777)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (12 2)) ((11 2) (0 0)) ((12 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2944)
  (parent 2786)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (12 2)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0)) ((12 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2945)
  (parent 2786)
  (seen 2778)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2946)
  (parent 2786)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (6 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2947)
  (parent 2789)
  (seen 2520)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (9 2)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2948)
  (parent 2793)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2949)
  (parent 2795)
  (seen 2761)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((9 3) (11 2)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2950)
  (parent 2795)
  (seen 2760)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (9 2))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2951)
  (parent 2795)
  (seen 2762)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2952)
  (parent 2795)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2953)
  (parent 2795)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (7 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2954)
  (parent 2796)
  (seen 2752)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (11 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (7 2)) ((10 2) (0 0)) ((11 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2955)
  (parent 2796)
  (seen 2751)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2)) ((8 3) (1 0))
    ((9 3) (7 2)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2956)
  (parent 2796)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2957)
  (parent 2796)
  (seen 2753)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (7 2)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2958)
  (parent 2796)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (9 2))
    ((8 3) (1 0)) ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2959)
  (parent 2797)
  (seen 2787)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (11 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2960)
  (parent 2797)
  (seen 2788)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 3) (1 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2961)
  (parent 2797)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2)) ((8 3) (1 0))
    ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2962)
  (parent 2797)
  (seen 2789)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (9 2))
    ((8 3) (1 0)) ((9 3) (4 2)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2963)
  (parent 2797)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2964)
  (parent 2798)
  (seen 3085 3086 3087)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2965)
  (parent 2799)
  (seen 3089 3090 3091)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2966)
  (parent 2800)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (7 2))
    ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2967)
  (parent 2801)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (4 2))
    ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 2968)
  (parent 2802)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0))
    ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2969)
  (parent 2804)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (3 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2970)
  (parent 2805)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)) ((9 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2971)
  (parent 2806)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2972)
  (parent 2807)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2973)
  (parent 2808)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2974)
  (parent 2809)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (8 1)) ((5 3) (12 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2975)
  (parent 2813)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((10 3) (12 2))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2976)
  (parent 2813)
  (seen 2765)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (12 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (10 2)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2977)
  (parent 2813)
  (seen 2766)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (10 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0))
    ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2978)
  (parent 2813)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (12 2)) ((5 0) (2 0))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2979)
  (parent 2814)
  (seen 2810)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 1))
    ((5 3) (12 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0)) ((12 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2980)
  (parent 2814)
  (seen 2811)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (8 1))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (12 2)) ((11 2) (0 0)) ((12 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2981)
  (parent 2814)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (4 2)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 2982)
  (parent 2814)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (10 2))
    ((5 1) (3 0)) ((6 2) (5 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (3 0)) ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2983)
  (parent 2817)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 1) (3 0)) ((6 2) (5 0)) ((7 3) (1 0)) ((8 3) (10 2))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2984)
  (parent 2823)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (2 3)) ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2985)
  (parent 2825)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (9 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (3 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2986)
  (parent 2826)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (3 0))
    ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2987)
  (parent 2827)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 2988)
  (parent 2828)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2989)
  (parent 2829)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2990)
  (parent 2830)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (2 3)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (3 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2991)
  (parent 2831)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2992)
  (parent 2833)
  (seen 3113 3114 3115 3116)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 2993)
  (parent 2834)
  (seen 3118 3119 3120 3121)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 2994)
  (parent 2835)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 2995)
  (parent 2835)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 2996)
  (parent 2835)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2997)
  (parent 2842)
  (seen 3124 3125 3126)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2998)
  (parent 2843)
  (seen 2653)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 1)) ((6 3) (11 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 2999)
  (parent 2843)
  (seen 2654)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (11 2)) ((8 1) (3 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3000)
  (parent 2843)
  (seen 2654)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3001)
  (parent 2843)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (0 0)) ((9 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3002)
  (parent 2846)
  (seen 2625)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3003)
  (parent 2851)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3004)
  (parent 2861)
  (seen 2705)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-7) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 3) (9 0))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain"))))
    ((send tpm-6 (cat "token" nonce-5))
      (recv tpm-6 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3005)
  (parent 2864)
  (unrealized (0 0) (9 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3006)
  (parent 2865)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3007)
  (parent 2866)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (11 0)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 12 6 tpm-extend-enc 4)
    (hash "0" n) (11 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3008)
  (parent 2867)
  (unrealized (0 0) (11 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 3) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (11 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3009)
  (parent 2867)
  (unrealized (0 0) (11 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (12 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 1) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (11 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3010)
  (parent 2867)
  (unrealized (0 0) (12 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-6) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-7) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 3) (9 0))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5
        (cat "extend" pcr-id-5 "obtain"
          (hash pcr-id-5 "obtain" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-6 (hash (hash "0" n) "obtain"))))
    ((send tpm-6 (cat "token" nonce-5))
      (recv tpm-6 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3011)
  (parent 2868)
  (unrealized (0 0) (9 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3012)
  (parent 2869)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (11 1))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3013)
  (parent 2870)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((5 3) (11 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3014)
  (parent 2871)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3015)
  (parent 2872)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (11 0)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 12 6 tpm-extend-enc 4)
    (hash "0" n) (11 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3016)
  (parent 2873)
  (unrealized (0 0) (11 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 3) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (11 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3017)
  (parent 2873)
  (unrealized (0 0) (11 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (12 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 1) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (11 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3018)
  (parent 2873)
  (unrealized (0 0) (12 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (11 2)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3019)
  (parent 2874)
  (seen 2838)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 2) (0 0)) ((11 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3020)
  (parent 2874)
  (seen 2839)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3021)
  (parent 2874)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (11 2)) ((9 1) (3 0))
    ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3022)
  (parent 2874)
  (seen 2840)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (9 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 2) (0 0)) ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3023)
  (parent 2874)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (11 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3024)
  (parent 2876)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3025)
  (parent 2878)
  (seen 3143 3144 3145 3146)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0))
    ((9 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3026)
  (parent 2879)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3027)
  (parent 2881)
  (seen 3149 3150 3151 3152)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3028)
  (parent 2882)
  (seen 3154 3155 3156 3157)
  (unrealized (12 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3029)
  (parent 2883)
  (seen 3159 3160 3161 3162)
  (unrealized (11 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3030)
  (parent 2884)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)) ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 3031)
  (parent 2884)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3032)
  (parent 2884)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (12 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3033)
  (parent 2889)
  (seen 2747)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((7 3) (12 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3034)
  (parent 2889)
  (seen 2748)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3035)
  (parent 2889)
  (seen 2749)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3036)
  (parent 2889)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((5 3) (10 1)) ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3037)
  (parent 2889)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (12 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3038)
  (parent 2892)
  (seen 2743)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3039)
  (parent 2892)
  (seen 2744)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3040)
  (parent 2892)
  (seen 2745)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (12 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3041)
  (parent 2892)
  (seen 2743)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (11 1))
    ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3042)
  (parent 2892)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (12 2)) ((7 3) (5 2)) ((7 3) (10 1)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3043)
  (parent 2893)
  (seen 2850)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (10 1)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3044)
  (parent 2893)
  (seen 2849)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (10 1)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3045)
  (parent 2893)
  (seen 2851)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (10 1)) ((7 3) (12 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3046)
  (parent 2893)
  (seen 2852)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (10 1))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3047)
  (parent 2893)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (12 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3048)
  (parent 2894)
  (seen 2747)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3049)
  (parent 2894)
  (seen 2748)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3050)
  (parent 2894)
  (seen 2749)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (12 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3051)
  (parent 2894)
  (seen 2747)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((5 3) (10 1)) ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3052)
  (parent 2894)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3053)
  (parent 2895)
  (seen 2751)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3054)
  (parent 2895)
  (seen 2752)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 2) (0 0)) ((11 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3055)
  (parent 2895)
  (seen 2753)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (11 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3056)
  (parent 2895)
  (seen 2751)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3057)
  (parent 2895)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3058)
  (parent 2897)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3059)
  (parent 2913)
  (seen 3167 3168 3169)
  (unrealized (12 2))
  (comment "21 in cohort - 4 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3060)
  (parent 2914)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3061)
  (parent 2915)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 0) (7 0)) ((9 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3062)
  (parent 2919)
  (seen 2948)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (10 1)) ((6 3) (12 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3063)
  (parent 2920)
  (seen 2822)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (7 0))
    ((8 3) (12 2)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3064)
  (parent 2920)
  (seen 2821)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3065)
  (parent 2920)
  (seen 2823)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3066)
  (parent 2920)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 0) (7 0)) ((9 3) (3 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3067)
  (parent 2922)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (5 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3068)
  (parent 2924)
  (seen 2818)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (10 1)) ((6 3) (12 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3069)
  (parent 2924)
  (seen 2817)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (7 0))
    ((8 3) (12 2)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (5 2)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3070)
  (parent 2924)
  (seen 2819)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (5 2)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3071)
  (parent 2924)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (2 3)) ((5 3) (4 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3072)
  (parent 2925)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 0) (3 0)) ((8 3) (2 3)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3073)
  (parent 2926)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 0) (2 3))
    ((8 3) (5 0)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3074)
  (parent 2927)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 3) (1 0)) ((6 3) (5 2)) ((6 3) (8 2))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3075)
  (parent 2928)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 0))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (6 2)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3076)
  (parent 2929)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (3 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 0) (2 3))
    ((8 3) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3077)
  (parent 2930)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (7 1)) ((6 3) (11 2)) ((7 2) (5 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (3 0)) ((11 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3078)
  (parent 2935)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (9 2)) ((5 1) (3 0))
    ((6 3) (7 1)) ((6 3) (11 2)) ((7 2) (5 0)) ((8 3) (1 0))
    ((9 3) (6 2)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3079)
  (parent 2939)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (7 1)) ((6 3) (9 2)) ((7 2) (5 0)) ((8 3) (1 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3080)
  (parent 2944)
  (seen 3003)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (9 2)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3081)
  (parent 2948)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (10 2)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (3 0)) ((10 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3082)
  (parent 2952)
  (seen 3173)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (10 2)) ((7 3) (1 0)) ((8 3) (6 2))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3083)
  (parent 2956)
  (seen 2948)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (8 2)) ((7 3) (1 0)) ((8 3) (10 2))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3084)
  (parent 2961)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (12 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3085)
  (parent 2964)
  (seen 2998)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (12 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3086)
  (parent 2964)
  (seen 2999)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (12 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3087)
  (parent 2964)
  (seen 3000)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3088)
  (parent 2964)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (12 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3089)
  (parent 2965)
  (seen 2916)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (12 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3090)
  (parent 2965)
  (seen 2917)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (12 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3091)
  (parent 2965)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3092)
  (parent 2965)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3093)
  (parent 2966)
  (seen 3185 3186 3187 3188)
  (unrealized (13 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (7 2))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3094)
  (parent 2967)
  (seen 3190 3191 3192 3193)
  (unrealized (13 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (4 2))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3095)
  (parent 2968)
  (seen 3195 3196 3197 3198)
  (unrealized (13 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3096)
  (parent 2969)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (3 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3097)
  (parent 2970)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (2 3)) ((9 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3098)
  (parent 2971)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (7 2))
    ((4 3) (8 0)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3099)
  (parent 2972)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (8 0))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3100)
  (parent 2973)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (2 3)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3101)
  (parent 2974)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 1)) ((4 3) (11 2))
    ((5 1) (3 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (3 0)) ((11 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3102)
  (parent 2975)
  (seen 2983)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 1)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3103)
  (parent 2981)
  (seen 2984)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (3 0)) ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3104)
  (parent 2983)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3105)
  (parent 2984)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3106)
  (parent 2985)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (3 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3107)
  (parent 2986)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 0) (3 0))
    ((9 3) (2 3)) ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3108)
  (parent 2987)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3109)
  (parent 2988)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (2 3)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3110)
  (parent 2989)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (2 3)) ((6 0) (2 0)) ((6 3) (10 2))
    ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3111)
  (parent 2990)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0))
    ((5 3) (9 0)) ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1))
    ((7 3) (10 2)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (3 0))
    ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3112)
  (parent 2991)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3113)
  (parent 2992)
  (seen 2776)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (12 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3114)
  (parent 2992)
  (seen 2777)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (12 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3115)
  (parent 2992)
  (seen 2778)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3116)
  (parent 2992)
  (seen 2778)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3117)
  (parent 2992)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3118)
  (parent 2993)
  (seen 2787)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (11 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3119)
  (parent 2993)
  (seen 2788)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (11 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3120)
  (parent 2993)
  (seen 2789)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3121)
  (parent 2993)
  (seen 2789)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3122)
  (parent 2993)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3123)
  (parent 2995)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3124)
  (parent 2997)
  (seen 2810)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (10 1)) ((6 3) (12 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3125)
  (parent 2997)
  (seen 2811)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (12 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3126)
  (parent 2997)
  (seen 2811)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3127)
  (parent 2997)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 0) (3 0)) ((10 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3128)
  (parent 3003)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3129)
  (parent 3006)
  (seen 3217 3218 3219 3220 3221)
  (unrealized (13 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3130)
  (parent 3007)
  (seen 3223 3224 3225 3226 3227)
  (unrealized (12 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((6 3) (11 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 3) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (11 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3131)
  (parent 3008)
  (unrealized (0 0) (11 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (11 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1))))
  (label 3132)
  (parent 3008)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (12 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((6 3) (11 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 1) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (11 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3133)
  (parent 3008)
  (unrealized (0 0) (12 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3134)
  (parent 3012)
  (seen 3230 3231 3232 3233 3234)
  (unrealized (13 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (11 1))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3135)
  (parent 3013)
  (seen 3236 3237 3238 3239 3240)
  (unrealized (13 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((5 3) (11 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3136)
  (parent 3014)
  (seen 3242 3243 3244 3245 3246)
  (unrealized (13 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3137)
  (parent 3015)
  (seen 3248 3249 3250 3251 3252)
  (unrealized (12 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-6) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (11 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 3) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (11 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3138)
  (parent 3016)
  (unrealized (0 0) (11 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (11 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1))))
  (label 3139)
  (parent 3016)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (12 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (11 0)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 1) (11 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (11 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3140)
  (parent 3016)
  (unrealized (0 0) (12 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 2) (0 0))
    ((10 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3141)
  (parent 3021)
  (seen 2809)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (11 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3142)
  (parent 3024)
  (seen 3255 3256 3257 3258)
  (unrealized (13 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 3) (3 0)) ((7 3) (12 2))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3143)
  (parent 3025)
  (seen 2998)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 1)) ((6 3) (12 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3144)
  (parent 3025)
  (seen 2999)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3145)
  (parent 3025)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 3) (3 0)) ((8 3) (12 2))
    ((9 1) (3 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3146)
  (parent 3025)
  (seen 3000)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3147)
  (parent 3025)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (4 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3148)
  (parent 3026)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (12 2))
    ((8 1) (3 0)) ((9 3) (5 2)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3149)
  (parent 3027)
  (seen 2901)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (12 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3150)
  (parent 3027)
  (seen 2902)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3151)
  (parent 3027)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (10 1)) ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3152)
  (parent 3027)
  (seen 2903)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3153)
  (parent 3027)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (12 2))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3154)
  (parent 3028)
  (seen 2905)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (12 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3155)
  (parent 3028)
  (seen 2906)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3156)
  (parent 3028)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3157)
  (parent 3028)
  (seen 2907)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (10 1)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3158)
  (parent 3028)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((7 3) (11 2))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3159)
  (parent 3029)
  (seen 2909)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (11 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (0 0)) ((11 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3160)
  (parent 3029)
  (seen 2910)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (5 2)) ((10 2) (0 0)) ((11 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3161)
  (parent 3029)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3162)
  (parent 3029)
  (seen 2911)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3163)
  (parent 3029)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3164)
  (parent 3031)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((8 3) (11 2)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3165)
  (parent 3036)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3166)
  (parent 3058)
  (seen 3267 3268 3269 3270)
  (unrealized (13 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (5 2)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3167)
  (parent 3059)
  (seen 2998)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (10 1)) ((6 3) (12 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3168)
  (parent 3059)
  (seen 2999)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0)) ((8 3) (12 2))
    ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3169)
  (parent 3059)
  (seen 3000)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (5 2)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3170)
  (parent 3059)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (2 3)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3171)
  (parent 3060)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (2 3)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (5 2))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3172)
  (parent 3061)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (3 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3173)
  (parent 3067)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3174)
  (parent 3072)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (2 3)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3175)
  (parent 3073)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (5 0))
    ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3176)
  (parent 3074)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 3) (1 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3177)
  (parent 3075)
  (seen 2323)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (6 2))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3178)
  (parent 3076)
  (seen 2324)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (3 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3179)
  (parent 3077)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (3 0)) ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3180)
  (parent 3078)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3181)
  (parent 3079)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (9 2)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (2 3)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3182)
  (parent 3081)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3183)
  (parent 3084)
  (seen 2809)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (3 0)) ((6 3) (5 0)) ((6 3) (11 2)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3184)
  (parent 3091)
  (seen 2984)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (9 1)) ((5 3) (13 2)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3185)
  (parent 3093)
  (seen 3069)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((11 3) (13 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3186)
  (parent 3093)
  (seen 3068)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (13 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (11 2)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3187)
  (parent 3093)
  (seen 3070)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((7 3) (13 2)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3188)
  (parent 3093)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (11 2))
    ((5 0) (2 0)) ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0))
    ((7 3) (4 2)) ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0))
    ((10 3) (1 0)) ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1))
    ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3189)
  (parent 3093)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (13 2)) ((5 0) (2 0))
    ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (7 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3190)
  (parent 3094)
  (seen 3064)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (13 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (7 2))
    ((12 2) (0 0)) ((13 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3191)
  (parent 3094)
  (seen 3063)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (13 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (7 2))
    ((12 2) (0 0)) ((13 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3192)
  (parent 3094)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (4 2)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (13 2))
    ((12 2) (0 0)) ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3193)
  (parent 3094)
  (seen 3065)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (4 2))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (7 2)) ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3194)
  (parent 3094)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((4 3) (13 2)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((7 3) (11 2)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (4 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3195)
  (parent 3095)
  (seen 3085)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (9 1))
    ((5 3) (13 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (4 2))
    ((12 2) (0 0)) ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3196)
  (parent 3095)
  (seen 3086)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (11 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (13 2))
    ((12 2) (0 0)) ((13 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3197)
  (parent 3095)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (7 2))
    ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0)) ((7 3) (13 2))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (4 2))
    ((12 2) (0 0)) ((13 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3198)
  (parent 3095)
  (seen 3087)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((7 3) (11 2)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (4 2)) ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3199)
  (parent 3095)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (2 3)) ((5 3) (4 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3200)
  (parent 3096)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 0) (3 0)) ((9 3) (2 3)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3201)
  (parent 3097)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (6 0)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3202)
  (parent 3098)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (7 2))
    ((4 3) (8 0)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3203)
  (parent 3099)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (8 0))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3204)
  (parent 3100)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3205)
  (parent 3101)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)) ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3206)
  (parent 3104)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 0) (3 0)) ((9 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3207)
  (parent 3105)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3208)
  (parent 3106)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (3 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3209)
  (parent 3107)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (2 3))
    ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3210)
  (parent 3108)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3211)
  (parent 3109)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0)) ((5 3) (9 0))
    ((5 3) (10 2)) ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3212)
  (parent 3110)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3213)
  (parent 3111)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (3 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3214)
  (parent 3112)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3215)
  (parent 3123)
  (seen 3300 3301 3302 3303)
  (unrealized (13 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3216)
  (parent 3128)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((7 3) (13 2)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3217)
  (parent 3129)
  (seen 3113)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (13 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3218)
  (parent 3129)
  (seen 3114)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (13 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3219)
  (parent 3129)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (13 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3220)
  (parent 3129)
  (seen 3115)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (11 1)) ((10 3) (13 2)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3221)
  (parent 3129)
  (seen 3116)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 pcr-id-7
      nonce-6 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 tpm-8
      chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-7) (nonce nonce-6) (pt pt-7) (pt-0 pt-6) (tpm tpm-8)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (11 1)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 nonce-6 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-8 (cat "token" nonce-6))
      (recv tpm-8 (cat "extend" pcr-id-7 n (hash pcr-id-7 n nonce-6)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3222)
  (parent 3129)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((7 3) (12 2)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3223)
  (parent 3130)
  (seen 3118)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (12 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3224)
  (parent 3130)
  (seen 3119)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3225)
  (parent 3130)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (12 2)) ((9 1) (3 0))
    ((10 3) (8 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3226)
  (parent 3130)
  (seen 3120)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (9 0)) ((10 3) (12 2)) ((11 2) (0 0)) ((12 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3227)
  (parent 3130)
  (seen 3121)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-7) (pt-0 pt-6) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (9 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3228)
  (parent 3130)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3229)
  (parent 3132)
  (unrealized (13 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (13 2)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3230)
  (parent 3134)
  (seen 3039)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (13 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3231)
  (parent 3134)
  (seen 3038)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (13 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3232)
  (parent 3134)
  (seen 3040)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (13 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3233)
  (parent 3134)
  (seen 3041)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (11 1)) ((10 3) (13 2)) ((11 2) (9 0)) ((12 2) (0 0))
    ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3234)
  (parent 3134)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 pcr-id-7
      nonce-6 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 tpm-8
      chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-4) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-7) (nonce nonce-6) (pt pt-7) (pt-0 pt-6) (tpm tpm-8)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (11 1)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 nonce-6 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-4 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-8 (cat "token" nonce-6))
      (recv tpm-8 (cat "extend" pcr-id-7 n (hash pcr-id-7 n nonce-6)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3235)
  (parent 3134)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (13 2)) ((8 3) (5 2))
    ((8 3) (11 1)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 2) (9 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3236)
  (parent 3135)
  (seen 3044)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (13 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (11 1))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3237)
  (parent 3135)
  (seen 3043)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (13 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (11 1))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3238)
  (parent 3135)
  (seen 3045)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (11 1)) ((8 3) (13 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3239)
  (parent 3135)
  (seen 3046)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((8 3) (11 1))
    ((9 1) (3 0)) ((10 3) (9 0)) ((10 3) (13 2)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3240)
  (parent 3135)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 pcr-id-7
      nonce-6 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 tpm-8
      chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt-3) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-7) (nonce nonce-6) (pt pt-7) (pt-0 pt-6) (tpm tpm-8)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((8 3) (11 1)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 2) (9 0)) ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 nonce-6 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-8 (cat "token" nonce-6))
      (recv tpm-8 (cat "extend" pcr-id-7 n (hash pcr-id-7 n nonce-6)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3241)
  (parent 3135)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((5 3) (11 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (13 2))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 2) (9 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3242)
  (parent 3136)
  (seen 3049)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((5 3) (11 1))
    ((6 0) (2 0)) ((6 3) (13 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3243)
  (parent 3136)
  (seen 3048)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 1)) ((5 3) (13 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3244)
  (parent 3136)
  (seen 3050)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((5 3) (11 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (13 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3245)
  (parent 3136)
  (seen 3051)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((5 3) (11 1))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (9 0)) ((10 3) (13 2)) ((11 2) (9 0))
    ((12 2) (0 0)) ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3246)
  (parent 3136)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 pcr-id-7
      nonce-6 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 tpm-8
      chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-5)
    (pt pt) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-7) (nonce nonce-6) (pt pt-7) (pt-0 pt-6) (tpm tpm-8)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((5 3) (11 1)) ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 2) (9 0)) ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 nonce-6 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-5 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-8 (cat "token" nonce-6))
      (recv tpm-8 (cat "extend" pcr-id-7 n (hash pcr-id-7 n nonce-6)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3247)
  (parent 3136)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((7 3) (12 2)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3248)
  (parent 3137)
  (seen 3054)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (12 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3249)
  (parent 3137)
  (seen 3053)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3250)
  (parent 3137)
  (seen 3055)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (12 2)) ((9 1) (3 0))
    ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (0 0)) ((12 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3251)
  (parent 3137)
  (seen 3056)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (9 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2)) ((9 1) (3 0))
    ((10 3) (9 0)) ((10 3) (12 2)) ((11 2) (0 0)) ((12 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3252)
  (parent 3137)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-7) (pt-0 pt-6) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (9 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3253)
  (parent 3137)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 3254)
  (parent 3139)
  (unrealized (13 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (11 1)) ((7 3) (3 0)) ((7 3) (13 2))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3255)
  (parent 3142)
  (seen 3124)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (11 1)) ((6 3) (13 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3256)
  (parent 3142)
  (seen 3125)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (13 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (11 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3257)
  (parent 3142)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (11 1)) ((7 3) (3 0)) ((8 3) (13 2))
    ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3258)
  (parent 3142)
  (seen 3126)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (11 1)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 1) (9 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3259)
  (parent 3142)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3260)
  (parent 3145)
  (seen 2984)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0))
    ((9 3) (4 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3261)
  (parent 3148)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3262)
  (parent 3151)
  (seen 3003)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((5 3) (11 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3263)
  (parent 3156)
  (seen 3004)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3264)
  (parent 3161)
  (seen 2948)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3265)
  (parent 3164)
  (seen 3316 3317 3318 3319)
  (unrealized (13 2))
  (comment "101 in cohort - 5 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3266)
  (parent 3165)
  (seen 2705)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (11 1)) ((6 3) (13 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3267)
  (parent 3166)
  (seen 3063)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (13 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3268)
  (parent 3166)
  (seen 3064)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (13 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3269)
  (parent 3166)
  (seen 3065)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (13 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0))
    ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3270)
  (parent 3166)
  (seen 3063)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3271)
  (parent 3166)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0))
    ((5 3) (8 0)) ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2))
    ((6 3) (7 0)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3272)
  (parent 3171)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3273)
  (parent 3172)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3274)
  (parent 3173)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 0)) ((4 3) (6 1)) ((4 3) (7 0))
    ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 0))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3275)
  (parent 3174)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 0) (2 3)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3276)
  (parent 3175)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (5 0))
    ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3277)
  (parent 3176)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 0) (3 0)) ((6 3) (2 3)) ((6 3) (8 2))
    ((7 2) (0 0)) ((8 3) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3278)
  (parent 3179)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 0) (3 0)) ((10 3) (2 3)) ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3279)
  (parent 3180)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 0) (3 0)) ((10 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3280)
  (parent 3181)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (9 2)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3281)
  (parent 3182)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (3 0)) ((6 3) (5 0)) ((6 3) (12 2)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (3 0)) ((12 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3282)
  (parent 3188)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 1)) ((4 3) (10 2))
    ((5 1) (3 0)) ((6 3) (5 0)) ((6 3) (12 2)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (6 2)) ((11 2) (0 0))
    ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3283)
  (parent 3192)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((4 3) (8 1))
    ((5 1) (3 0)) ((6 3) (5 0)) ((6 3) (10 2)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (12 2)) ((11 2) (0 0))
    ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3284)
  (parent 3197)
  (seen 3260)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3285)
  (parent 3200)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (2 3)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3286)
  (parent 3201)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3287)
  (parent 3202)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((4 3) (8 0))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3288)
  (parent 3203)
  (seen 2479)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3289)
  (parent 3204)
  (seen 2480)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3290)
  (parent 3205)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (2 3)) ((9 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3291)
  (parent 3206)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3292)
  (parent 3207)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3293)
  (parent 3208)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 0) (3 0)) ((9 3) (2 3)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3294)
  (parent 3209)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 0) (2 3))
    ((9 3) (6 0)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3295)
  (parent 3210)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3296)
  (parent 3211)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3297)
  (parent 3212)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3298)
  (parent 3213)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 0) (3 0)) ((10 3) (2 3))
    ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3299)
  (parent 3214)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (13 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3300)
  (parent 3215)
  (seen 3085)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (11 1)) ((6 3) (13 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3301)
  (parent 3215)
  (seen 3086)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (13 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3302)
  (parent 3215)
  (seen 3087)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (13 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3303)
  (parent 3215)
  (seen 3087)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (5 2))
    ((8 1) (3 0)) ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3304)
  (parent 3215)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 0) (2 3)) ((10 3) (4 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3305)
  (parent 3216)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3306)
  (parent 3219)
  (seen 3080)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (11 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (7 2))
    ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3307)
  (parent 3225)
  (seen 3084)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (13 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (13 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3308)
  (parent 3229)
  (seen 3347 3348 3349 3350 3351)
  (unrealized (14 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (10 1))
    ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0)) ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3309)
  (parent 3234)
  (seen 3079)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (10 1)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3310)
  (parent 3240)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (12 2)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3311)
  (parent 3246)
  (seen 3165)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((8 1) (3 0)) ((9 3) (8 0))
    ((9 3) (11 2)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3312)
  (parent 3252)
  (seen 3083)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (13 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))) (13 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3313)
  (parent 3254)
  (seen 3354 3355 3356 3357 3358)
  (unrealized (14 2))
  (comment "501 in cohort - 6 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (12 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0)) ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3314)
  (parent 3257)
  (seen 3103)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 3) (4 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3315)
  (parent 3261)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (3 0))
    ((7 3) (13 2)) ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3316)
  (parent 3265)
  (seen 3167)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (11 1)) ((6 3) (13 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3317)
  (parent 3265)
  (seen 3168)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((5 3) (13 2))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3318)
  (parent 3265)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (13 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3319)
  (parent 3265)
  (seen 3169)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (5 2)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)) ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3320)
  (parent 3265)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (8 0))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3321)
  (parent 3272)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3322)
  (parent 3273)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (2 3)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3323)
  (parent 3274)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 0)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3324)
  (parent 3275)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3325)
  (parent 3276)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (5 0)) ((8 3) (6 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3326)
  (parent 3277)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 3) (2 3)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 3) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3327)
  (parent 3278)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (2 3)) ((10 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3328)
  (parent 3279)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3329)
  (parent 3280)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 1) (3 0))
    ((6 3) (5 0)) ((6 3) (9 2)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3330)
  (parent 3281)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 2)) ((4 3) (7 1))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (3 0)) ((11 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3331)
  (parent 3282)
  (seen 2983)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 1)) ((4 3) (9 2))
    ((5 3) (11 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (5 2)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3332)
  (parent 3283)
  (seen 2984)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0))
    ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 0))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3333)
  (parent 3285)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 0) (2 3)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3334)
  (parent 3286)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3335)
  (parent 3287)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 0) (3 0)) ((7 3) (2 3))
    ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3336)
  (parent 3290)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (6 0)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3337)
  (parent 3291)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 0) (2 3)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3338)
  (parent 3292)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 1)) ((4 3) (8 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3339)
  (parent 3293)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (2 3)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3340)
  (parent 3294)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (6 0))
    ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3341)
  (parent 3295)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3342)
  (parent 3296)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1)) ((5 3) (9 0))
    ((5 3) (10 2)) ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3343)
  (parent 3297)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3344)
  (parent 3298)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (2 3)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3345)
  (parent 3299)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (4 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3346)
  (parent 3305)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((7 3) (14 2))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (13 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3347)
  (parent 3308)
  (seen 3300)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (12 1)) ((6 3) (14 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3348)
  (parent 3308)
  (seen 3301)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (14 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3349)
  (parent 3308)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (14 2))
    ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3350)
  (parent 3308)
  (seen 3302)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (9 0)) ((10 3) (14 2)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3351)
  (parent 3308)
  (seen 3303)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 pcr-id-7
      nonce-6 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 tpm-8
      chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-7) (nonce nonce-6) (pt pt-7) (pt-0 pt-6) (tpm tpm-8)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (15 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (13 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((6 3) (12 1)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (8 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (13 1))
    ((15 3) (14 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 nonce-6 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-8 (cat "token" nonce-6))
      (recv tpm-8 (cat "extend" pcr-id-7 n (hash pcr-id-7 n nonce-6)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3352)
  (parent 3308)
  (unrealized (15 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-2) (aik aik-0) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (9 1)) ((8 3) (11 2))
    ((9 2) (3 0)) ((10 2) (0 0)) ((11 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3353)
  (parent 3310)
  (seen 3003)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((7 3) (14 2))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (13 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3354)
  (parent 3313)
  (seen 3268)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (12 1)) ((6 3) (14 2)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3355)
  (parent 3313)
  (seen 3267)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (14 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3356)
  (parent 3313)
  (seen 3269)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (14 2))
    ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3357)
  (parent 3313)
  (seen 3270)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-0) (pt-0 pt-5) (tpm tpm-7) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (13 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0)) ((8 3) (5 2))
    ((9 1) (3 0)) ((10 3) (9 0)) ((10 3) (14 2)) ((11 1) (9 0))
    ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule ordered-extends ordered-extends)
  (operation channel-test (displaced 15 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-5 (hash (hash "0" n) "refuse")))))
  (label 3358)
  (parent 3313)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 pcr-id-5 pcr-id-6 nonce-5 pcr-id-7
      nonce-6 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 tpm-8
      chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-4) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-5) (pt pt-0) (aik aik-1) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-5) (aik aik) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-6) (nonce nonce-5)
    (pt pt-6) (pt-0 pt-5) (tpm tpm-7) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-7) (nonce nonce-6) (pt pt-7) (pt-0 pt-6) (tpm tpm-8)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (15 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (13 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (12 1)) ((7 3) (3 0))
    ((8 3) (5 2)) ((9 1) (3 0)) ((10 3) (7 2)) ((10 3) (9 0))
    ((11 1) (9 0)) ((12 2) (11 0)) ((13 2) (0 0)) ((14 3) (13 1))
    ((15 3) (14 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 nonce-6 n v
    pt pt-0 pt-2 pt-3 pt-4 pt-5 pt-6 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-6 (hash "0" n))) (14 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-4 (cat "token" nonce-4))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-5 (cat "quote" pcr-id-5 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-5 (hash "0" n) nonce aik-1)))
    ((recv tpm-6 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-5 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7
        (cat "extend" pcr-id-6 "refuse"
          (hash pcr-id-6 "refuse" nonce-5)))
      (load pcr-0 (cat pt-6 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "refuse"))))
    ((send tpm-8 (cat "token" nonce-6))
      (recv tpm-8 (cat "extend" pcr-id-7 n (hash pcr-id-7 n nonce-6)))
      (load pcr-0 (cat pt-7 "0")) (stor pcr-0 (cat pt-6 (hash "0" n)))))
  (label 3359)
  (parent 3313)
  (unrealized (15 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 0) (4 0))
    ((9 3) (4 1)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3360)
  (parent 3315)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((5 3) (12 2))
    ((6 0) (2 0)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (5 2)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3361)
  (parent 3318)
  (seen 3260)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1))
    ((5 3) (8 0)) ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2))
    ((6 3) (7 0)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3362)
  (parent 3321)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3363)
  (parent 3322)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (4 0)) ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3364)
  (parent 3323)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3365)
  (parent 3324)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (2 3)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3366)
  (parent 3325)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 0) (5 0))
    ((8 3) (5 1)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3367)
  (parent 3326)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 0) (2 3)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 3) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3368)
  (parent 3327)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 0) (2 3)) ((10 3) (7 0)) ((10 3) (8 2))
    ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3369)
  (parent 3328)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 0) (2 3)) ((10 3) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3370)
  (parent 3329)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 1) (3 0)) ((6 0) (5 0)) ((6 3) (3 0)) ((6 3) (9 2))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3371)
  (parent 3330)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3372)
  (parent 3333)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3373)
  (parent 3334)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (9 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (6 0))
    ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3374)
  (parent 3335)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (2 3)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3375)
  (parent 3336)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3376)
  (parent 3337)
  (seen 3341)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (3 0)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3377)
  (parent 3338)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3378)
  (parent 3339)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 0) (2 3)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3379)
  (parent 3340)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 0) (6 0))
    ((9 3) (6 1)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3380)
  (parent 3341)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 0) (3 0)) ((7 3) (2 3)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3381)
  (parent 3342)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (9 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3382)
  (parent 3343)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3383)
  (parent 3344)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 0) (2 3)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3384)
  (parent 3345)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3))
    ((5 3) (10 2)) ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (4 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3385)
  (parent 3346)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (13 2)) ((6 0) (2 0))
    ((6 3) (9 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (7 2)) ((9 3) (8 0)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3386)
  (parent 3349)
  (seen 3284)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((6 3) (11 1)) ((7 3) (5 2)) ((8 1) (3 0))
    ((9 3) (8 0)) ((9 3) (13 2)) ((10 1) (8 0)) ((11 2) (10 0))
    ((12 2) (0 0)) ((13 3) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 3387)
  (parent 3358)
  (seen 3283)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 3) (4 1))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3388)
  (parent 3360)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (8 0))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3389)
  (parent 3362)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3390)
  (parent 3363)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (4 0)) ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3391)
  (parent 3364)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 1)) ((4 3) (6 2)) ((4 3) (7 0))
    ((4 3) (8 2)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3392)
  (parent 3365)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3393)
  (parent 3366)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (5 1))
    ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3394)
  (parent 3367)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3395)
  (parent 3368)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (7 0)) ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3396)
  (parent 3369)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2))
    ((9 2) (0 0)) ((10 3) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3397)
  (parent 3370)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 1) (3 0)) ((6 3) (3 0)) ((6 3) (9 2)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3398)
  (parent 3371)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3399)
  (parent 3372)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (2 3)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3400)
  (parent 3373)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 0) (6 0)) ((9 3) (6 1)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3401)
  (parent 3374)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 0) (2 3)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3402)
  (parent 3375)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 0) (3 0)) ((7 3) (2 3))
    ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3403)
  (parent 3377)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 0)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3404)
  (parent 3378)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3405)
  (parent 3379)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (6 1))
    ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3406)
  (parent 3380)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (2 3)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3407)
  (parent 3381)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2)) ((5 3) (9 0))
    ((5 3) (10 2)) ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3408)
  (parent 3382)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3409)
  (parent 3383)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3410)
  (parent 3384)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (2 3)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (4 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3411)
  (parent 3385)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 0) (4 1))
    ((9 3) (4 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3412)
  (parent 3388)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2))
    ((5 3) (8 0)) ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2))
    ((6 3) (7 0)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3413)
  (parent 3389)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3414)
  (parent 3390)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 0) (4 0)) ((9 3) (4 1)) ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3415)
  (parent 3391)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3416)
  (parent 3392)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 0)) ((4 3) (6 1)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)) ((8 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3417)
  (parent 3393)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (5 1)) ((8 3) (6 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3418)
  (parent 3394)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3419)
  (parent 3395)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (7 0)) ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3420)
  (parent 3396)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3421)
  (parent 3397)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 1) (3 0)) ((6 0) (3 0)) ((6 3) (2 3)) ((6 3) (9 2))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3422)
  (parent 3398)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0))
    ((4 3) (9 2)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3423)
  (parent 3399)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3424)
  (parent 3400)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (6 1)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3425)
  (parent 3401)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3426)
  (parent 3402)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (2 3)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3427)
  (parent 3403)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (9 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3428)
  (parent 3404)
  (seen 2618)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3429)
  (parent 3405)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 0) (6 1))
    ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3430)
  (parent 3406)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 0) (2 3)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3431)
  (parent 3407)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3432)
  (parent 3408)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3433)
  (parent 3409)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3434)
  (parent 3410)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (4 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3435)
  (parent 3411)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 3) (4 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3436)
  (parent 3412)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3437)
  (parent 3413)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3438)
  (parent 3414)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (4 1)) ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3439)
  (parent 3415)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3440)
  (parent 3416)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2))
    ((8 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3441)
  (parent 3417)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 0) (5 1))
    ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3442)
  (parent 3418)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3443)
  (parent 3419)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 0) (7 0)) ((10 3) (7 1)) ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3444)
  (parent 3420)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 0) (7 0)) ((10 3) (7 1)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3445)
  (parent 3421)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 1) (3 0)) ((6 3) (2 3)) ((6 3) (9 2)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3446)
  (parent 3422)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3447)
  (parent 3423)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3448)
  (parent 3424)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (9 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (6 1))
    ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3449)
  (parent 3425)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3450)
  (parent 3426)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 0) (2 3)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3451)
  (parent 3427)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3452)
  (parent 3429)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3453)
  (parent 3430)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3454)
  (parent 3431)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 0)) ((5 3) (4 2)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3455)
  (parent 3432)
  (seen 2377)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 0)) ((5 3) (4 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3456)
  (parent 3433)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (4 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3457)
  (parent 3434)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (4 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3458)
  (parent 3435)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 0) (4 2))
    ((9 3) (1 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (4 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3459)
  (parent 3436)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (3 0)) ((6 3) (5 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3460)
  (parent 3437)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 0) (7 0)) ((9 3) (3 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3461)
  (parent 3438)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 0) (4 1)) ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3462)
  (parent 3439)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (6 2)) ((4 3) (8 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 0)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3463)
  (parent 3440)
  (seen 3177)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (6 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 0) (6 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3464)
  (parent 3441)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (6 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3465)
  (parent 3442)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 0) (5 0))
    ((8 3) (5 1)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3466)
  (parent 3443)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (7 1)) ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3467)
  (parent 3444)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (7 1)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3468)
  (parent 3445)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 1) (3 0)) ((6 0) (2 3)) ((6 3) (9 2)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3469)
  (parent 3446)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3470)
  (parent 3447)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3471)
  (parent 3448)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 0) (6 1)) ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3472)
  (parent 3449)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3473)
  (parent 3450)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3474)
  (parent 3451)
  (seen 3454)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 0) (7 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3475)
  (parent 3452)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (9 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 0) (8 0))
    ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3476)
  (parent 3453)
  (seen 2619)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (6 0)) ((9 3) (6 1)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3477)
  (parent 3454)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3478)
  (parent 3456)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (4 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3479)
  (parent 3457)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0)) ((6 3) (7 2))
    ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (4 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3480)
  (parent 3458)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 3) (1 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (4 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3481)
  (parent 3459)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (2 3)) ((6 3) (5 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3482)
  (parent 3460)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (3 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3483)
  (parent 3461)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3484)
  (parent 3462)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (6 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3485)
  (parent 3464)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (6 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3486)
  (parent 3465)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 1))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3487)
  (parent 3466)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 0) (7 1)) ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3488)
  (parent 3467)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 0) (7 1)) ((10 3) (7 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3489)
  (parent 3468)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 1) (3 0)) ((6 3) (9 2)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3490)
  (parent 3469)
  (seen 3426)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (9 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 0)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3491)
  (parent 3470)
  (seen 3288)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (7 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 0) (7 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3492)
  (parent 3471)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (7 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3493)
  (parent 3472)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (6 0)) ((9 3) (6 1)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3494)
  (parent 3473)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3495)
  (parent 3475)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 1)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3496)
  (parent 3477)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 1)) ((5 3) (0 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3497)
  (parent 3478)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 0) (4 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3498)
  (parent 3479)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 0) (4 0)) ((10 3) (4 1)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3499)
  (parent 3480)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 0) (1 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3500)
  (parent 3481)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((5 3) (9 2)) ((6 0) (2 0)) ((6 3) (4 0)) ((6 3) (5 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3501)
  (parent 3482)
  (seen 3447)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 0) (3 0)) ((9 3) (2 3)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3502)
  (parent 3483)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (3 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3503)
  (parent 3484)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3504)
  (parent 3485)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 0)) ((4 3) (8 2))
    ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 0) (7 0))
    ((8 3) (6 2)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3505)
  (parent 3486)
  (seen 3178)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 0) (5 0)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 3) (5 1)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3506)
  (parent 3487)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (8 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3507)
  (parent 3488)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (7 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3508)
  (parent 3489)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (7 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3509)
  (parent 3492)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (9 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (7 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3510)
  (parent 3493)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 1)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3511)
  (parent 3494)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3512)
  (parent 3495)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 0) (6 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 1)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3513)
  (parent 3496)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3514)
  (parent 3497)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3515)
  (parent 3498)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (4 1)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3516)
  (parent 3499)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3517)
  (parent 3500)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (2 3)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3518)
  (parent 3502)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (2 3)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3519)
  (parent 3503)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 1)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)) ((8 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3520)
  (parent 3504)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 1))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3521)
  (parent 3506)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 0) (9 0)) ((10 3) (8 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3522)
  (parent 3507)
  (seen 2378)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 0) (7 2)) ((10 3) (1 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (7 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3523)
  (parent 3508)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3524)
  (parent 3509)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (8 0)) ((4 3) (9 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 0) (8 0)) ((9 3) (7 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3525)
  (parent 3510)
  (seen 3289)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 0) (6 0)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 1)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3526)
  (parent 3511)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3527)
  (parent 3512)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 1))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3528)
  (parent 3513)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (10 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3529)
  (parent 3514)
  (seen 2376)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (4 1)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3530)
  (parent 3515)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (4 1)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3531)
  (parent 3516)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (3 0)) ((8 2) (0 0)) ((9 0) (8 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3532)
  (parent 3517)
  (seen 2293)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 0) (2 3)) ((9 3) (4 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3533)
  (parent 3518)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (4 0)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (5 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3534)
  (parent 3519)
  (seen 3493)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2))
    ((8 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3535)
  (parent 3520)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 1)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3536)
  (parent 3521)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (1 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (7 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3537)
  (parent 3523)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3538)
  (parent 3524)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 1)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3539)
  (parent 3526)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 0) (7 1)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3540)
  (parent 3527)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 1)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (6 1)) ((9 3) (6 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3541)
  (parent 3528)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (4 1)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3542)
  (parent 3530)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0)) ((6 3) (7 2))
    ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (4 1)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3543)
  (parent 3531)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (4 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3544)
  (parent 3533)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (6 1)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 0) (6 1)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3545)
  (parent 3535)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 1)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 0) (5 1))
    ((8 3) (5 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3546)
  (parent 3536)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 0) (1 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3547)
  (parent 3537)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3548)
  (parent 3538)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 1))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3549)
  (parent 3539)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3550)
  (parent 3540)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 1)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3551)
  (parent 3541)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 0) (4 1)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3552)
  (parent 3542)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 0) (4 1)) ((10 3) (4 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3553)
  (parent 3543)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 0) (4 0)) ((9 3) (4 1)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3554)
  (parent 3544)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (6 1)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3555)
  (parent 3545)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 1)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3556)
  (parent 3546)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3557)
  (parent 3547)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 0) (7 1)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3558)
  (parent 3548)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 1)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (6 1)) ((9 3) (6 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3559)
  (parent 3549)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3560)
  (parent 3550)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 0) (6 1)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3561)
  (parent 3551)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3562)
  (parent 3552)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (4 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3563)
  (parent 3553)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (4 1)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3564)
  (parent 3554)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3565)
  (parent 3555)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 0) (5 1)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 3) (5 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3566)
  (parent 3556)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-1) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (8 2)) ((5 3) (6 1)) ((5 3) (10 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (5 2)) ((9 2) (0 0))
    ((10 0) (9 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3567)
  (parent 3557)
  (seen 2380)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3568)
  (parent 3558)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 1)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3569)
  (parent 3559)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3570)
  (parent 3560)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3571)
  (parent 3561)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 0)) ((5 3) (4 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (5 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3572)
  (parent 3562)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (4 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3573)
  (parent 3563)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 0) (4 1)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3574)
  (parent 3564)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (6 2)) ((4 3) (7 1))
    ((5 0) (2 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3575)
  (parent 3565)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (6 2))
    ((5 3) (1 0)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 0) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3576)
  (parent 3566)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3577)
  (parent 3568)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 0) (6 1)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 3) (6 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3578)
  (parent 3569)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 0) (8 0)) ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3579)
  (parent 3570)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (6 2)) ((9 3) (1 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3580)
  (parent 3571)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3581)
  (parent 3572)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (10 2)) ((6 0) (2 0)) ((6 3) (7 2))
    ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0))
    ((10 3) (4 2)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3582)
  (parent 3573)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3583)
  (parent 3574)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3584)
  (parent 3575)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (5 2)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3585)
  (parent 3576)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (8 1))
    ((5 0) (2 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3586)
  (parent 3577)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (7 2))
    ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (6 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((7 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3587)
  (parent 3578)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3588)
  (parent 3579)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (1 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3589)
  (parent 3580)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 0) (9 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3590)
  (parent 3581)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 0) (4 2)) ((10 3) (1 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (4 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3591)
  (parent 3582)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (3 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3592)
  (parent 3583)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (7 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 0) (7 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3593)
  (parent 3584)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 0) (5 2))
    ((8 3) (1 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (5 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3594)
  (parent 3585)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3595)
  (parent 3586)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (9 2)) ((8 2) (0 0)) ((9 3) (6 2))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3596)
  (parent 3587)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (8 1)) ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3597)
  (parent 3588)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (1 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3598)
  (parent 3589)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3599)
  (parent 3590)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (1 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (4 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3600)
  (parent 3591)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (2 3)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3601)
  (parent 3592)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (7 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3602)
  (parent 3593)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (1 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (5 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3603)
  (parent 3594)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (8 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 0) (8 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3604)
  (parent 3595)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (6 2)) ((9 3) (1 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (6 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3605)
  (parent 3596)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3606)
  (parent 3597)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3607)
  (parent 3598)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 1)) ((5 3) (0 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (5 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3608)
  (parent 3599)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 0) (1 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3609)
  (parent 3600)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (4 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3610)
  (parent 3601)
  (seen 3568)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3611)
  (parent 3602)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 0) (1 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3612)
  (parent 3603)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (8 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3613)
  (parent 3604)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (1 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (6 2)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3614)
  (parent 3605)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (0 0)) ((4 3) (7 2)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3615)
  (parent 3606)
  (seen 2619)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (8 0)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 0) (8 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3616)
  (parent 3607)
  (seen 3404)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3617)
  (parent 3608)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (10 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 0) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3618)
  (parent 3609)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (7 1)) ((4 3) (0 0)) ((4 3) (6 2))
    ((5 0) (2 0)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (4 2)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3619)
  (parent 3611)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 0) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3620)
  (parent 3612)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3621)
  (parent 3613)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 0) (1 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3622)
  (parent 3614)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (7 2)) ((7 3) (8 1)) ((7 3) (10 2)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (5 2)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3623)
  (parent 3617)
  (seen 2378)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((5 3) (10 2))
    ((6 0) (2 0)) ((6 3) (7 2)) ((7 3) (5 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 0) (9 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((10 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 3624)
  (parent 3618)
  (seen 3432)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (0 0)) ((4 3) (6 2)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3625)
  (parent 3619)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((5 3) (1 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (8 2)) ((7 2) (0 0))
    ((8 0) (7 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((8 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3626)
  (parent 3620)
  (seen 3440)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (8 1)) ((4 3) (0 0)) ((4 3) (7 2))
    ((5 0) (2 0)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (4 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3627)
  (parent 3621)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (9 2)) ((8 2) (0 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 0) (1 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3628)
  (parent 3622)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (0 0)) ((4 3) (6 2)) ((5 0) (2 0))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (4 2))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3629)
  (parent 3625)
  (seen 2324)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3630)
  (parent 3627)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((5 1) (3 0))
    ((6 3) (1 0)) ((7 3) (6 2)) ((7 3) (8 0)) ((7 3) (9 2))
    ((8 2) (0 0)) ((9 0) (8 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((9 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3631)
  (parent 3628)
  (seen 3470)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (4 2)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 3632)
  (parent 3630)
  (seen 2480)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(comment "Nothing left to do")

(defprotocol envelope-plus-2 basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false))))
  (defrule pcr-id-identifies-pcr
    (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
      (implies
        (and (p "tpm-extend-enc" y 3) (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "pcr-id" y pcr-id)
          (p "tpm-extend-enc" "pcr-id" z pcr-id)
          (p "tpm-extend-enc" "pcr" y pcr)
          (p "tpm-extend-enc" "pcr" z pcr-0))
        (= pcr pcr-0)))))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (k aik akey) (tpm tpmconf chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig v n)
  (conf tpmconf)
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 3633)
  (unrealized (0 0) (1 3))
  (preskeleton)
  (origs (v (1 4)) (n (1 1)))
  (comment "Not a skeleton"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (k aik akey) (tpm tpmconf chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((1 4) (0 0)))
  (non-orig aik)
  (uniq-orig v n)
  (conf tpmconf)
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 3634)
  (parent 3633)
  (unrealized (1 3))
  (origs (v (1 4)) (n (1 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik) (1 3))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
  (label 3635)
  (parent 3634)
  (unrealized (0 0) (2 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 3636)
  (parent 3635)
  (unrealized (0 0) (2 0) (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (displaced 3 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
  (label 3637)
  (parent 3635)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3638)
  (parent 3635)
  (unrealized (0 0) (3 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (3 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 3639)
  (parent 3636)
  (unrealized (0 0) (2 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg) (pcr-id nonce pcr-id-0 text) (v n data)
    (pt pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-0) (pt pt) (k k) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 current-value aik-0))
      (load pcr (cat pt current-value)) (send v)))
  (label 3640)
  (parent 3637)
  (unrealized (3 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 3641)
  (parent 3638)
  (unrealized (0 0) (3 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3642)
  (parent 3638)
  (unrealized (0 0) (4 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 3643)
  (parent 3639)
  (unrealized (0 0) (1 0) (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig v n k)
  (genStV (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 4 2 tpm-create-key 2)
    (enc "created" k pcr-id-0 current-value aik-0) (3 1))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
  (label 3644)
  (parent 3640)
  (unrealized (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (pt pt-0 pval) (k aik akey)
    (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce v n pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-0 pcr-id) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 3645)
  (parent 3641)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3646)
  (parent 3643)
  (unrealized (0 0) (1 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3647)
  (parent 3643)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 5 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 3648)
  (parent 3643)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3649)
  (parent 3643)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (3 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
  (label 3650)
  (parent 3644)
  (unrealized (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (5 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3651)
  (parent 3645)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0))))
  (label 3652)
  (parent 3645)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce text) (v n data) (pt pt-0 pval) (k aik akey)
    (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce v n pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3653)
  (parent 3645)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3654)
  (parent 3646)
  (unrealized (0 0) (1 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3655)
  (parent 3647)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 3656)
  (parent 3648)
  (unrealized (0 0) (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3657)
  (parent 3649)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3658)
  (parent 3649)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3659)
  (parent 3649)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 2))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 3660)
  (parent 3650)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0))))
  (label 3661)
  (parent 3652)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3662)
  (parent 3655)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 3663)
  (parent 3656)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3664)
  (parent 3656)
  (unrealized (0 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3665)
  (parent 3656)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3666)
  (parent 3656)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3667)
  (parent 3656)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3668)
  (parent 3657)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 3669)
  (parent 3657)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3670)
  (parent 3657)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce))))
  (traces ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 3671)
  (parent 3660)
  (unrealized (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-1) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-1 current-value)) (send v)))
  (label 3672)
  (parent 3661)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3673)
  (parent 3662)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-0) (tpm tpm-0)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-0))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3674)
  (parent 3663)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (2 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3675)
  (parent 3664)
  (unrealized (0 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3676)
  (parent 3665)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 3 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3677)
  (parent 3666)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3678)
  (parent 3666)
  (unrealized (0 0) (5 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3679)
  (parent 3666)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3680)
  (parent 3666)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3681)
  (parent 3667)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3682)
  (parent 3667)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3683)
  (parent 3667)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 3684)
  (parent 3669)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 3685)
  (parent 3671)
  (unrealized (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 v n pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3686)
  (parent 3672)
  (unrealized (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3687)
  (parent 3673)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-1 (3 0)) (pt-0 (3 3)) (k (2 1)) (nonce-0 (4 0))
    (pt (4 3)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 3) (0 0))
    ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3688)
  (parent 3673)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 6 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-0) (5 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3689)
  (parent 3674)
  (unrealized (5 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3690)
  (parent 3676)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3691)
  (parent 3677)
  (unrealized (0 0) (5 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3692)
  (parent 3677)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3693)
  (parent 3677)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3694)
  (parent 3677)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3695)
  (parent 3678)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3696)
  (parent 3678)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3697)
  (parent 3679)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3698)
  (parent 3680)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3699)
  (parent 3680)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3700)
  (parent 3680)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3701)
  (parent 3681)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 3702)
  (parent 3681)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3703)
  (parent 3681)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3704)
  (parent 3684)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 3705)
  (parent 3685)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (5 0)) (pt-0 (5 3)) (nonce-0 (4 0)) (pt (4 3)) (k (2 1))
    (n (1 1)) (v (1 4))))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 3706)
  (parent 3685)
  (seen 3713 3715)
  (unrealized (2 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3707)
  (parent 3685)
  (unrealized (2 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3708)
  (parent 3685)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3709)
  (parent 3685)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 3) (0 0))
    ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3710)
  (parent 3686)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3711)
  (parent 3688)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (k (2 1)) (nonce-1 (3 0)) (pt-0 (3 3)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3712)
  (parent 3688)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 6 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3713)
  (parent 3689)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (5 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3714)
  (parent 3689)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3715)
  (parent 3690)
  (seen 3687)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3716)
  (parent 3690)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3717)
  (parent 3691)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3718)
  (parent 3692)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3719)
  (parent 3693)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3720)
  (parent 3694)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3721)
  (parent 3694)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3722)
  (parent 3694)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3723)
  (parent 3695)
  (unrealized (0 0) (5 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3724)
  (parent 3695)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3725)
  (parent 3695)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3726)
  (parent 3695)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3727)
  (parent 3697)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3728)
  (parent 3698)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 3729)
  (parent 3698)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3730)
  (parent 3698)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3731)
  (parent 3702)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3732)
  (parent 3704)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3733)
  (parent 3706)
  (unrealized (2 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3734)
  (parent 3706)
  (seen 3738 3763)
  (unrealized (6 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3735)
  (parent 3706)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3736)
  (parent 3707)
  (seen 3748 3750 3769)
  (unrealized (2 0))
  (comment "6 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3737)
  (parent 3707)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3738)
  (parent 3708)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3739)
  (parent 3708)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3740)
  (parent 3708)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (n (1 1)) (k-0 (6 1)) (nonce (5 0)) (pt-0 (5 3))
    (nonce-0 (4 0)) (pt (4 3)) (k (2 1)) (v (1 4))))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3741)
  (parent 3708)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3742)
  (parent 3709)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3743)
  (parent 3709)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3744)
  (parent 3709)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3745)
  (parent 3710)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0))
    ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3746)
  (parent 3710)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (2 0)) ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3747)
  (parent 3713)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3748)
  (parent 3714)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (5 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (0 0)) ((6 3) (5 2)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3749)
  (parent 3714)
  (unrealized (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 2) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3750)
  (parent 3716)
  (seen 3711)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3751)
  (parent 3716)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3752)
  (parent 3718)
  (seen 3780)
  (unrealized (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 2 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-1) (6 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3753)
  (parent 3719)
  (seen 3781)
  (unrealized (6 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3754)
  (parent 3720)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 3755)
  (parent 3720)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3756)
  (parent 3720)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3757)
  (parent 3723)
  (unrealized (0 0) (5 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 3758)
  (parent 3724)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-3) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 3759)
  (parent 3725)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3760)
  (parent 3726)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3761)
  (parent 3726)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3762)
  (parent 3726)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3763)
  (parent 3727)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3764)
  (parent 3727)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3765)
  (parent 3729)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3766)
  (parent 3731)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3767)
  (parent 3732)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3768)
  (parent 3732)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3769)
  (parent 3733)
  (unrealized (2 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3770)
  (parent 3733)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3771)
  (parent 3734)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3772)
  (parent 3734)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3773)
  (parent 3735)
  (seen 3806)
  (unrealized (6 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3774)
  (parent 3735)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3775)
  (parent 3735)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3776)
  (parent 3736)
  (unrealized (2 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3777)
  (parent 3736)
  (seen 3783 3803)
  (unrealized (7 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3778)
  (parent 3736)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3779)
  (parent 3738)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3780)
  (parent 3738)
  (seen 3715)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3781)
  (parent 3738)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3782)
  (parent 3738)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3783)
  (parent 3739)
  (seen 3831)
  (unrealized (6 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3784)
  (parent 3739)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3785)
  (parent 3741)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3786)
  (parent 3741)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3787)
  (parent 3741)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3788)
  (parent 3742)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 3789)
  (parent 3742)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3790)
  (parent 3742)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 pcr-id-1 nonce-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-0) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 3) (0 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-0 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-0 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3791)
  (parent 3745)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
        (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (3 0)) (pt-0 (3 3)) (nonce-1 (6 0)) (pt-1 (6 3))
    (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3792)
  (parent 3747)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3793)
  (parent 3748)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3794)
  (parent 3752)
  (seen 3838)
  (unrealized (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3795)
  (parent 3753)
  (seen 3839)
  (unrealized (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 3796)
  (parent 3755)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3797)
  (parent 3758)
  (unrealized (8 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3798)
  (parent 3759)
  (unrealized (7 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3799)
  (parent 3760)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 3800)
  (parent 3760)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3801)
  (parent 3760)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (2 0)) ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3802)
  (parent 3763)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3803)
  (parent 3764)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3804)
  (parent 3764)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3805)
  (parent 3765)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3806)
  (parent 3766)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3807)
  (parent 3766)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3808)
  (parent 3767)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3809)
  (parent 3768)
  (seen 3745)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3810)
  (parent 3768)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-2 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3811)
  (parent 3769)
  (seen 3713)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3812)
  (parent 3769)
  (unrealized (2 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3813)
  (parent 3769)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3814)
  (parent 3769)
  (seen 3715)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3815)
  (parent 3769)
  (seen 3817 3825)
  (unrealized (7 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3816)
  (parent 3769)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3817)
  (parent 3771)
  (seen 3831 3850 3853)
  (unrealized (6 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3818)
  (parent 3771)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3819)
  (parent 3772)
  (seen 3859)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3820)
  (parent 3772)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3821)
  (parent 3772)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3822)
  (parent 3773)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3823)
  (parent 3773)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3824)
  (parent 3776)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3825)
  (parent 3777)
  (seen 3831 3851 3854)
  (unrealized (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3826)
  (parent 3777)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3827)
  (parent 3777)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3828)
  (parent 3778)
  (seen 3862)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3829)
  (parent 3778)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3830)
  (parent 3778)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3831)
  (parent 3779)
  (unrealized (6 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 3832)
  (parent 3779)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (6 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3833)
  (parent 3781)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3834)
  (parent 3782)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3835)
  (parent 3782)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3836)
  (parent 3782)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3837)
  (parent 3783)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3838)
  (parent 3783)
  (seen 3750)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3839)
  (parent 3783)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3840)
  (parent 3783)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3841)
  (parent 3785)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 3842)
  (parent 3785)
  (seen 3789)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3843)
  (parent 3785)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 3844)
  (parent 3789)
  (seen 3791)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3845)
  (parent 3792)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3846)
  (parent 3793)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-1)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-1 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3847)
  (parent 3794)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3848)
  (parent 3795)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 2 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-2) (8 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3849)
  (parent 3796)
  (seen 3893)
  (unrealized (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3850)
  (parent 3797)
  (seen 3813)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3851)
  (parent 3797)
  (seen 3780)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3852)
  (parent 3797)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3853)
  (parent 3798)
  (seen 3891)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3854)
  (parent 3798)
  (seen 3781)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3855)
  (parent 3798)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 3856)
  (parent 3800)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3857)
  (parent 3802)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3858)
  (parent 3803)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3859)
  (parent 3805)
  (seen 3806)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3860)
  (parent 3805)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (5 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3861)
  (parent 3806)
  (seen 3808)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3862)
  (parent 3807)
  (seen 3789)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3863)
  (parent 3807)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (2 0))
    ((3 3) (1 3)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3864)
  (parent 3808)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3865)
  (parent 3812)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3866)
  (parent 3813)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3867)
  (parent 3815)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3868)
  (parent 3815)
  (seen 3763)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3869)
  (parent 3815)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3870)
  (parent 3816)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3871)
  (parent 3816)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3872)
  (parent 3816)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3873)
  (parent 3817)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3874)
  (parent 3817)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3875)
  (parent 3819)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3876)
  (parent 3819)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3877)
  (parent 3825)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3878)
  (parent 3825)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3879)
  (parent 3826)
  (seen 3903 3905 3926)
  (unrealized (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3880)
  (parent 3826)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3881)
  (parent 3827)
  (seen 3910)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3882)
  (parent 3827)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3883)
  (parent 3827)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3884)
  (parent 3828)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3885)
  (parent 3828)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 3886)
  (parent 3831)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3887)
  (parent 3831)
  (seen 3813)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (8 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3888)
  (parent 3831)
  (seen 3814)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3889)
  (parent 3831)
  (seen 3781)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3890)
  (parent 3831)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3891)
  (parent 3833)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3892)
  (parent 3834)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1))))
  (label 3893)
  (parent 3834)
  (seen 3806)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3894)
  (parent 3834)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3895)
  (parent 3837)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3896)
  (parent 3839)
  (seen 3858)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3897)
  (parent 3840)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3898)
  (parent 3840)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3899)
  (parent 3840)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3900)
  (parent 3845)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 0)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3901)
  (parent 3846)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 3) (0 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3902)
  (parent 3849)
  (seen 3941)
  (unrealized (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 3) (0 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3903)
  (parent 3852)
  (seen 3838)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3904)
  (parent 3852)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3905)
  (parent 3855)
  (seen 3839)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (5 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (0 0))
    ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3906)
  (parent 3855)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 2 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3907)
  (parent 3856)
  (unrealized (9 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (1 3)) ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (2 0))
    ((4 3) (3 2)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3908)
  (parent 3857)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3909)
  (parent 3858)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 3910)
  (parent 3860)
  (seen 3842)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3911)
  (parent 3860)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (1 3))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3912)
  (parent 3864)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3913)
  (parent 3866)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3914)
  (parent 3867)
  (seen 3926)
  (unrealized (7 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3915)
  (parent 3867)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3916)
  (parent 3869)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3917)
  (parent 3869)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3918)
  (parent 3869)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3919)
  (parent 3870)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 1)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 3920)
  (parent 3870)
  (seen 3806)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3921)
  (parent 3870)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3922)
  (parent 3873)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3923)
  (parent 3874)
  (seen 3946)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3924)
  (parent 3874)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3925)
  (parent 3874)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3926)
  (parent 3877)
  (unrealized (7 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3927)
  (parent 3877)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3928)
  (parent 3878)
  (seen 3947)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3929)
  (parent 3878)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3930)
  (parent 3878)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 3931)
  (parent 3879)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3932)
  (parent 3879)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3933)
  (parent 3881)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3934)
  (parent 3881)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3935)
  (parent 3886)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3936)
  (parent 3890)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3937)
  (parent 3890)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3938)
  (parent 3890)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (2 0)) ((4 3) (1 3)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3939)
  (parent 3891)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3940)
  (parent 3897)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 3941)
  (parent 3897)
  (seen 3862)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3942)
  (parent 3897)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (1 3)) ((4 3) (3 2))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3943)
  (parent 3900)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 1)) ((3 3) (5 2)) ((4 3) (0 0))
    ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (4 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3944)
  (parent 3901)
  (seen 3705)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 3) (0 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 3945)
  (parent 3902)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 3 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3946)
  (parent 3907)
  (seen 3920)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3947)
  (parent 3907)
  (seen 3893)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3948)
  (parent 3907)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (2 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3949)
  (parent 3908)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3950)
  (parent 3909)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3951)
  (parent 3912)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3952)
  (parent 3913)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 3953)
  (parent 3914)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3954)
  (parent 3914)
  (seen 3850)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3955)
  (parent 3914)
  (seen 3853)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3956)
  (parent 3914)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3957)
  (parent 3916)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (9 1)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 3958)
  (parent 3916)
  (seen 3859)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3959)
  (parent 3916)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3960)
  (parent 3923)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3961)
  (parent 3923)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 3962)
  (parent 3926)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (9 1)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3963)
  (parent 3926)
  (seen 3887)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (9 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 3964)
  (parent 3926)
  (seen 3888)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (7 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 1 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3965)
  (parent 3926)
  (seen 3889)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3966)
  (parent 3926)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3967)
  (parent 3928)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3968)
  (parent 3928)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3969)
  (parent 3931)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3970)
  (parent 3932)
  (seen 3978)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3971)
  (parent 3932)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3972)
  (parent 3932)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3973)
  (parent 3936)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 3974)
  (parent 3936)
  (seen 3920)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text) (v n data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (6 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 v n pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3975)
  (parent 3936)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (1 3)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3976)
  (parent 3939)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3977)
  (parent 3943)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((4 3) (10 2)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 3978)
  (parent 3948)
  (seen 3941)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 pcr-id-3
      nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (9 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 3) (0 0)) ((10 3) (9 2))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3979)
  (parent 3948)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (1 3)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3980)
  (parent 3949)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 1)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 3) (0 0)) ((6 3) (5 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 3981)
  (parent 3950)
  (seen 3740)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (6 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3982)
  (parent 3951)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3983)
  (parent 3952)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3984)
  (parent 3953)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3985)
  (parent 3956)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3986)
  (parent 3956)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3987)
  (parent 3956)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 pcr-id-4 nonce-4 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 v n pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 3988)
  (parent 3962)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 3989)
  (parent 3966)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3990)
  (parent 3966)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3991)
  (parent 3966)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3992)
  (parent 3970)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 3993)
  (parent 3970)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (1 3)) ((4 3) (3 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 3994)
  (parent 3976)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (5 0)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3995)
  (parent 3977)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3996)
  (parent 3980)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (6 0))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 3997)
  (parent 3982)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2)) ((5 3) (6 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((1 2) (2 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 3998)
  (parent 3983)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 3999)
  (parent 3985)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (10 1)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4000)
  (parent 3985)
  (seen 3946)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (2 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4001)
  (parent 3985)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      pcr-id-3 nonce-3 text) (v n data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4002)
  (parent 3989)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 nonce-3
      pcr-id-3 text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (10 1)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 v n pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4003)
  (parent 3989)
  (seen 3974)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2
      text) (v n data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 3) (0 0)) ((4 3) (7 0)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4004)
  (parent 3989)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 0)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (1 3)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 4005)
  (parent 3994)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4006)
  (parent 3995)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (6 0)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4007)
  (parent 3996)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (6 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1)) ((5 2) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4008)
  (parent 3997)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4009)
  (parent 3998)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (3 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 4010)
  (parent 4005)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4011)
  (parent 4006)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 0) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4012)
  (parent 4007)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 text)
    (v n data) (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 0) (6 1))
    ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 1))
    ((5 2) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4013)
  (parent 4008)
  (seen 3791)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)) ((5 3) (6 2))
    ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4014)
  (parent 4009)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 4015)
  (parent 4010)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (5 1)) ((3 3) (5 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 1)) ((5 3) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 v n pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (5 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4016)
  (parent 4011)
  (seen 3944)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4017)
  (parent 4012)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id nonce-0 pcr-id-0 nonce-1 pcr-id-1 nonce-2 pcr-id-2 text)
    (v n data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce-0) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
    ((4 0) (3 1)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (7 1)) ((7 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 v n pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4018)
  (parent 4014)
  (seen 3711)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (pt pt)
    (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 3) (0 0)) ((4 0) (3 1)) ((4 3) (3 2)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0))))
  (label 4019)
  (parent 4015)
  (seen 3896)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id nonce pcr-id-0 nonce-0 text) (v n data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 0) (6 1)) ((3 3) (6 2)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 3) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 v n pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (6 1)))
  (traces ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-0 "obtain"
          (hash pcr-id-0 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id (hash (hash "0" n) "obtain") aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4020)
  (parent 4017)
  (seen 3981)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(comment "Nothing left to do")

(defprotocol envelope-plus-2 basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false))))
  (defrule pcr-id-identifies-pcr
    (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
      (implies
        (and (p "tpm-extend-enc" y 3) (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "pcr-id" y pcr-id)
          (p "tpm-extend-enc" "pcr-id" z pcr-id)
          (p "tpm-extend-enc" "pcr" y pcr)
          (p "tpm-extend-enc" "pcr" z pcr-0))
        (= pcr pcr-0)))))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 4021)
  (unrealized (0 0) (1 3))
  (preskeleton)
  (origs (v (1 4)) (n (1 1)))
  (comment "Not a skeleton"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((1 4) (0 0)))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 4022)
  (parent 4021)
  (unrealized (0 0) (1 3))
  (origs (v (1 4)) (n (1 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (1 3))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 4023)
  (parent 4022)
  (unrealized (0 0) (2 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 4024)
  (parent 4023)
  (unrealized (0 0) (2 0) (3 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (displaced 3 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 4025)
  (parent 4023)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4026)
  (parent 4023)
  (unrealized (0 0) (3 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (3 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4027)
  (parent 4024)
  (unrealized (0 0) (2 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (genStV (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4028)
  (parent 4025)
  (unrealized (3 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4029)
  (parent 4026)
  (unrealized (0 0) (3 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4030)
  (parent 4026)
  (unrealized (0 0) (4 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4031)
  (parent 4027)
  (unrealized (0 0) (1 0) (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0))
    ((4 3) (3 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (3 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
  (label 4032)
  (parent 4028)
  (unrealized (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id-0) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (4 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4033)
  (parent 4029)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4034)
  (parent 4031)
  (unrealized (0 0) (1 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4035)
  (parent 4031)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 5 1 alice 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4036)
  (parent 4031)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4037)
  (parent 4031)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4038)
  (parent 4032)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (5 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4039)
  (parent 4033)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 4040)
  (parent 4033)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (3 0)) ((5 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (3 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4041)
  (parent 4033)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4042)
  (parent 4034)
  (unrealized (0 0) (1 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4043)
  (parent 4035)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4044)
  (parent 4036)
  (unrealized (0 0) (2 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4045)
  (parent 4037)
  (unrealized (0 0) (1 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4046)
  (parent 4037)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4047)
  (parent 4037)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4048)
  (parent 4038)
  (unrealized (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 4049)
  (parent 4040)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4050)
  (parent 4043)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4051)
  (parent 4044)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4052)
  (parent 4044)
  (unrealized (0 0) (2 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4053)
  (parent 4044)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4054)
  (parent 4044)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4055)
  (parent 4044)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4056)
  (parent 4045)
  (unrealized (0 0) (1 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4057)
  (parent 4045)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4058)
  (parent 4045)
  (unrealized (0 0) (1 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (1 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4059)
  (parent 4048)
  (unrealized (2 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4060)
  (parent 4049)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0)) ((6 2) (0 0))
    ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4061)
  (parent 4050)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4062)
  (parent 4051)
  (unrealized (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 3) (2 0)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4063)
  (parent 4052)
  (unrealized (0 0) (2 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4064)
  (parent 4053)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 3 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4065)
  (parent 4054)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4066)
  (parent 4054)
  (unrealized (0 0) (5 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4067)
  (parent 4054)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4068)
  (parent 4054)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (5 0))
    ((5 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 4 tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4069)
  (parent 4055)
  (unrealized (0 0) (5 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4070)
  (parent 4055)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4071)
  (parent 4055)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (1 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4072)
  (parent 4057)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4073)
  (parent 4059)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (5 0)) (pt-0 (5 3)) (nonce-0 (4 0)) (pt (4 3)) (n (1 1))
    (k (2 1)) (v (1 4))))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4074)
  (parent 4059)
  (unrealized (2 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4075)
  (parent 4059)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4076)
  (parent 4059)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0)) ((6 2) (0 0))
    ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4077)
  (parent 4060)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 3) (5 1))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4078)
  (parent 4061)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt (4 3)) (nonce-2 (7 0)) (pt-2 (7 3))
    (nonce-1 (3 0)) (pt-0 (3 3)) (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4079)
  (parent 4061)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (0 0))
    ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (5 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4080)
  (parent 4062)
  (unrealized (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 2) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4081)
  (parent 4064)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4082)
  (parent 4065)
  (unrealized (0 0) (5 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4083)
  (parent 4065)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4084)
  (parent 4065)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4085)
  (parent 4065)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4086)
  (parent 4066)
  (unrealized (0 0) (5 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4087)
  (parent 4066)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4088)
  (parent 4067)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4089)
  (parent 4068)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4090)
  (parent 4068)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4091)
  (parent 4068)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4092)
  (parent 4069)
  (unrealized (0 0) (5 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4093)
  (parent 4069)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (6 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (5 0)) ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (5 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4094)
  (parent 4069)
  (unrealized (0 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4095)
  (parent 4072)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 7 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4096)
  (parent 4074)
  (seen 4106 4108)
  (unrealized (2 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 3) (2 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4097)
  (parent 4074)
  (unrealized (2 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4098)
  (parent 4075)
  (unrealized (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4099)
  (parent 4075)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (n (1 1)) (k-0 (6 1)) (nonce (5 0)) (pt-0 (5 3))
    (nonce-0 (4 0)) (pt (4 3)) (k (2 1)) (v (1 4))))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4100)
  (parent 4075)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4101)
  (parent 4076)
  (unrealized (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4102)
  (parent 4076)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4103)
  (parent 4076)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (6 0)) ((2 1) (1 3)) ((3 1) (2 0))
    ((4 0) (1 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((5 2) (3 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4104)
  (parent 4077)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 1) (2 0)) ((4 0) (1 0)) ((4 3) (5 1)) ((5 2) (3 0))
    ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4105)
  (parent 4077)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4106)
  (parent 4080)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (5 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (0 0)) ((6 3) (5 1)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4107)
  (parent 4080)
  (unrealized (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 2) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4108)
  (parent 4081)
  (seen 4078)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 2) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4109)
  (parent 4081)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (6 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4110)
  (parent 4082)
  (unrealized (0 0) (5 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4111)
  (parent 4083)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4112)
  (parent 4084)
  (unrealized (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 0))
    ((5 1) (2 0)) ((6 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4113)
  (parent 4085)
  (unrealized (0 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4114)
  (parent 4085)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4115)
  (parent 4085)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4116)
  (parent 4086)
  (unrealized (0 0) (5 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4117)
  (parent 4086)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 1 alice 3)
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4118)
  (parent 4086)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (5 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4119)
  (parent 4086)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4120)
  (parent 4088)
  (unrealized (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4121)
  (parent 4089)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 4122)
  (parent 4089)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4123)
  (parent 4089)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4124)
  (parent 4093)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4125)
  (parent 4095)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4126)
  (parent 4096)
  (unrealized (2 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4127)
  (parent 4096)
  (seen 4129 4150)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (2 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4128)
  (parent 4096)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4129)
  (parent 4098)
  (unrealized (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4130)
  (parent 4098)
  (unrealized (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4131)
  (parent 4100)
  (unrealized (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4132)
  (parent 4100)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4133)
  (parent 4100)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4134)
  (parent 4101)
  (unrealized (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (2 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4135)
  (parent 4101)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (2 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4136)
  (parent 4101)
  (unrealized (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 4) (5 0)) ((2 1) (1 3)) ((3 0) (1 0))
    ((3 3) (4 1)) ((3 3) (6 2)) ((4 2) (2 0)) ((5 2) (0 0))
    ((6 3) (5 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4137)
  (parent 4104)
  (unrealized)
  (shape)
  (maps
    ((0 1)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (3 0)) (pt-0 (3 3)) (nonce-1 (6 0)) (pt-1 (6 3))
    (k (2 1)) (v (1 4)) (n (1 1))))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4138)
  (parent 4106)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4139)
  (parent 4111)
  (seen 4163)
  (unrealized (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((5 1) (2 0))
    ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4140)
  (parent 4112)
  (seen 4164)
  (unrealized (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (7 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4141)
  (parent 4113)
  (unrealized (0 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 4142)
  (parent 4113)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (7 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 0)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4143)
  (parent 4113)
  (unrealized (0 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 3) (5 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4144)
  (parent 4116)
  (unrealized (0 0) (5 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4145)
  (parent 4117)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4146)
  (parent 4118)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 4 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4147)
  (parent 4119)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4148)
  (parent 4119)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4149)
  (parent 4119)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (6 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4150)
  (parent 4120)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4151)
  (parent 4120)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4152)
  (parent 4122)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4153)
  (parent 4124)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 4) (7 0)) ((2 1) (1 3)) ((3 3) (2 0))
    ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1)) ((4 3) (8 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4154)
  (parent 4125)
  (seen 4104)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4155)
  (parent 4125)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 3) (2 0))
    ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4156)
  (parent 4126)
  (unrealized (2 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4157)
  (parent 4127)
  (unrealized (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4158)
  (parent 4127)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0)) ((7 1) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4159)
  (parent 4128)
  (seen 4181)
  (unrealized (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4160)
  (parent 4128)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4161)
  (parent 4128)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4162)
  (parent 4129)
  (unrealized (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4163)
  (parent 4129)
  (seen 4108)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 1 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4164)
  (parent 4129)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4165)
  (parent 4129)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4166)
  (parent 4131)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (2 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 4167)
  (parent 4131)
  (seen 4135)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (2 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4168)
  (parent 4131)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((6 2) (2 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4169)
  (parent 4135)
  (seen 4137)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4170)
  (parent 4138)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (6 1)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4171)
  (parent 4139)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (5 0)) ((1 4) (6 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((5 1) (2 0)) ((6 2) (0 0)) ((7 3) (6 1)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4172)
  (parent 4140)
  (unrealized (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4173)
  (parent 4142)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4174)
  (parent 4145)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4175)
  (parent 4146)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4176)
  (parent 4147)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4177)
  (parent 4147)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (4 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (0 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (7 0)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4178)
  (parent 4147)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (2 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4179)
  (parent 4150)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4180)
  (parent 4152)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 1))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4181)
  (parent 4153)
  (seen 4135)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 1)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4182)
  (parent 4153)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4183)
  (parent 4157)
  (seen 4197 4199)
  (unrealized (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4184)
  (parent 4157)
  (unrealized (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4185)
  (parent 4158)
  (seen 4203)
  (unrealized (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4186)
  (parent 4158)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4187)
  (parent 4158)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (8 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4188)
  (parent 4159)
  (unrealized (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (8 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (7 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4189)
  (parent 4159)
  (unrealized (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4190)
  (parent 4162)
  (unrealized (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((1 1) (5 1)) ((1 2) (6 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (2 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4191)
  (parent 4164)
  (seen 4179)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4192)
  (parent 4165)
  (unrealized (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4193)
  (parent 4165)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4194)
  (parent 4165)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (4 0)) ((3 3) (5 2)) ((4 2) (0 0))
    ((5 3) (4 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4195)
  (parent 4170)
  (seen 4073)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4196)
  (parent 4173)
  (seen 4210)
  (unrealized (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4197)
  (parent 4174)
  (seen 4163)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (7 1)) ((7 2) (5 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4198)
  (parent 4174)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (5 0)) ((1 4) (7 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4199)
  (parent 4175)
  (seen 4164)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (9 1)) ((1 2) (5 0)) ((1 4) (7 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 2) (0 0))
    ((8 3) (7 1)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4200)
  (parent 4175)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4201)
  (parent 4177)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (1 3)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (2 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4202)
  (parent 4179)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (8 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (7 1))
    ((4 3) (9 2)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4203)
  (parent 4180)
  (seen 4167)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4204)
  (parent 4180)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 4205)
  (parent 4183)
  (unrealized (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0)) ((7 1) (2 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4206)
  (parent 4183)
  (unrealized (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4207)
  (parent 4185)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4208)
  (parent 4185)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (9 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4209)
  (parent 4192)
  (unrealized (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (2 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4210)
  (parent 4192)
  (seen 4181)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (9 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (2 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4211)
  (parent 4192)
  (unrealized (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (8 0))
    ((2 1) (1 3)) ((3 3) (5 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (7 1)) ((5 1) (2 0)) ((6 1) (5 0)) ((7 2) (6 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4212)
  (parent 4196)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0)) ((7 1) (5 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4213)
  (parent 4201)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-1) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (precedes ((1 1) (3 1)) ((1 2) (4 0)) ((1 4) (5 0)) ((2 1) (1 3))
    ((3 0) (1 0)) ((3 3) (5 0)) ((3 3) (6 2)) ((4 1) (2 0))
    ((5 2) (0 0)) ((6 3) (5 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-1 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((3 3) (1 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-1 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "refuse")))))
  (label 4214)
  (parent 4202)
  (seen 4099)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4215)
  (parent 4205)
  (unrealized (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2))
    ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 5 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4216)
  (parent 4206)
  (seen 4219)
  (unrealized (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4217)
  (parent 4206)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((6 3) (2 0))
    ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4218)
  (parent 4206)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((1 1) (4 1)) ((1 2) (2 0)) ((1 4) (9 0)) ((2 1) (1 3))
    ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2)) ((4 3) (6 2))
    ((4 3) (8 1)) ((4 3) (10 2)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4219)
  (parent 4213)
  (seen 4210)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((1 1) (4 1)) ((1 1) (11 1)) ((1 2) (2 0)) ((1 4) (9 0))
    ((2 1) (1 3)) ((3 3) (2 0)) ((4 0) (1 0)) ((4 3) (3 2))
    ((4 3) (6 2)) ((4 3) (8 1)) ((5 1) (2 0)) ((6 3) (5 0))
    ((7 1) (5 0)) ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4220)
  (parent 4213)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((1 1) (5 1)) ((1 1) (10 1)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4221)
  (parent 4216)
  (unrealized (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id) (pt pt)
    (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((1 1) (5 1)) ((1 1) (10 0)) ((1 2) (2 0)) ((1 4) (3 0))
    ((2 1) (1 3)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0))
    ((5 3) (4 2)) ((5 3) (6 2)) ((5 3) (8 2)) ((5 3) (9 0))
    ((6 3) (2 0)) ((7 1) (2 0)) ((8 3) (7 0)) ((9 1) (7 0))
    ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "refuse"
          (hash pcr-id-1 "refuse" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4222)
  (parent 4216)
  (unrealized (10 0))
  (dead)
  (comment "empty cohort"))

(comment "Nothing left to do")

(defprotocol envelope-plus-2 basic
  (defrole tpm-power-on
    (vars (current-value mesg) (pcr locn) (tpm chan) (pt pt-0 pval))
    (trace (recv tpm "power on") (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 "0")))
    (uniq-orig pt-0))
  (defrole tpm-extend-enc
    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
      (tpm chan) (pt pt-0 pval))
    (trace (send tpm (cat "token" nonce))
      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
      (load pcr (cat pt current-value))
      (stor pcr (cat pt-0 (hash current-value value))) (send "ext ok"))
    (uniq-orig nonce pt-0))
  (defrole tpm-quote
    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "quote" pcr-id nonce))
      (load pcr (cat pt current-value))
      (send (enc "quote" pcr-id current-value nonce aik))))
  (defrole tpm-create-key
    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
    (trace (recv tpm (cat "create-req" pcr-id pcrval))
      (send (enc "created" k pcr-id pcrval aik)))
    (non-orig (invk k))
    (uniq-orig k))
  (defrole tpm-decrypt
    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
      (tpm chan) (pt pval))
    (trace (recv tpm (cat "decrypt" (enc m k)))
      (recv (enc "created" k pcr-id current-value aik))
      (load pcr (cat pt current-value)) (send m))
    (non-orig aik))
  (defrole alice
    (vars (n v data) (pcr-id nonce text) (k aik akey)
      (tpm tpmconf chan))
    (trace (recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    (non-orig aik)
    (uniq-orig n v)
    (conf tpmconf)
    (neq (k aik)))
  (defrule genStV-if-hashed-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-if-hashed-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (hash v1 v2)))
        (gen-st (hash v1 v2)))))
  (defrule genStV-not-catted-tpm-power-on
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-power-on" z 2)
          (p "tpm-power-on" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-extend-enc
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-extend-enc" z 2)
          (p "tpm-extend-enc" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-decrypt
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-decrypt" z 3)
          (p "tpm-decrypt" "current-value" z (cat v1 v2)))
        (false))))
  (defrule genStV-not-catted-tpm-quote
    (forall ((z strd) (v1 v2 mesg))
      (implies
        (and (p "tpm-quote" z 2)
          (p "tpm-quote" "current-value" z (cat v1 v2)))
        (false))))
  (defrule pcr-id-identifies-pcr
    (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
      (implies
        (and (p "tpm-extend-enc" y 3) (p "tpm-extend-enc" z 3)
          (p "tpm-extend-enc" "pcr-id" y pcr-id)
          (p "tpm-extend-enc" "pcr-id" z pcr-id)
          (p "tpm-extend-enc" "pcr" y pcr)
          (p "tpm-extend-enc" "pcr" z pcr-0))
        (= pcr pcr-0)))))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 4223)
  (unrealized (0 0) (1 0) (2 3))
  (preskeleton)
  (origs (v (2 4)) (n (2 1)))
  (comment "Not a skeleton"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)))
  (non-orig aik)
  (uniq-orig n v)
  (conf tpmconf)
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k))))
  (label 4224)
  (parent 4223)
  (unrealized (0 0) (2 3))
  (origs (v (2 4)) (n (2 1)))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 3))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 4225)
  (parent 4224)
  (unrealized (0 0) (1 0) (3 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain")))))
  (label 4226)
  (parent 4225)
  (unrealized (0 0) (1 0) (3 0) (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (displaced 4 2 alice 3)
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
  (label 4227)
  (parent 4225)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)) ((4 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4228)
  (parent 4225)
  (unrealized (0 0) (1 0) (4 0))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt) (tpm tpm-2)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash "0" n))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4229)
  (parent 4226)
  (unrealized (0 0) (1 0) (3 0) (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg) (pcr-id pcr-id-0 nonce pcr-id-1 text)
    (n v data) (pt pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-1) (pt pt) (k k) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-1 current-value aik-0))
      (load pcr (cat pt current-value)) (send v)))
  (label 4230)
  (parent 4227)
  (unrealized (0 0) (4 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpm-1)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4231)
  (parent 4228)
  (unrealized (0 0) (1 0) (4 0) (5 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (k aik akey)
    (tpm tpmconf tpm-0 chan))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 1) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4232)
  (parent 4228)
  (unrealized (0 0) (1 0) (5 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-2 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4233)
  (parent 4229)
  (unrealized (0 0) (1 0) (2 0) (3 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig n v k)
  (genStV (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 5 3 tpm-create-key 2)
    (enc "created" k pcr-id-1 current-value aik-0) (4 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
  (label 4234)
  (parent 4230)
  (unrealized (0 0) (4 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-1 pcr-id-0) (nonce-0 nonce) (tpm-1 tpmconf)) n
    (5 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4235)
  (parent 4231)
  (unrealized (0 0) (1 0) (2 0) (4 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4236)
  (parent 4233)
  (unrealized (0 0) (1 0) (2 0) (3 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4237)
  (parent 4233)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 6 2 alice 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4238)
  (parent 4233)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4239)
  (parent 4233)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-extend-enc)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
  (label 4240)
  (parent 4234)
  (unrealized (0 0) (5 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-1) (nonce nonce-0) (pt pt-1) (pt-0 pt-2) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (6 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0))
    ((6 3) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt-0 pt-2 k)
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
      (load pcr-0 (cat pt-1 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4241)
  (parent 4235)
  (unrealized (0 0) (1 0) (2 0) (4 0) (6 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 4242)
  (parent 4235)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce text) (n v data) (pt pt-0 pval)
    (k aik akey) (tpm tpmconf tpm-0 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (4 0))
    ((6 1) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce n v pt-0 k)
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (4 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4243)
  (parent 4235)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (3 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4244)
  (parent 4236)
  (unrealized (0 0) (1 0) (2 0) (3 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4245)
  (parent 4237)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce (2 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4246)
  (parent 4238)
  (unrealized (0 0) (1 0) (3 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 0))
    ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4247)
  (parent 4239)
  (unrealized (0 0) (1 0) (2 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4248)
  (parent 4239)
  (unrealized (0 0) (1 0) (2 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4249)
  (parent 4239)
  (unrealized (0 0) (1 0) (2 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-1) (pt-0 pt-0) (tpm tpm-3)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4250)
  (parent 4240)
  (unrealized (0 0) (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-1 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0))))
  (label 4251)
  (parent 4242)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4252)
  (parent 4245)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-0 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n)))))
  (label 4253)
  (parent 4246)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4254)
  (parent 4246)
  (unrealized (0 0) (1 0) (3 0) (6 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4255)
  (parent 4246)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4256)
  (parent 4246)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4257)
  (parent 4246)
  (unrealized (0 0) (1 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4258)
  (parent 4247)
  (unrealized (0 0) (1 0) (2 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4259)
  (parent 4247)
  (unrealized (0 0) (1 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpm tpmconf tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4260)
  (parent 4247)
  (unrealized (0 0) (1 0) (2 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey)
    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpm) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test
    (contracted (pcr-id-2 pcr-id-0) (nonce-1 nonce) (tpm-3 tpmconf)) n
    (6 1)
    (ch-msg tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpm (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpm
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm-0
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-0))
      (recv tpm-2
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4261)
  (parent 4250)
  (unrealized (0 0) (2 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-1) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-1 current-value)) (send v)))
  (label 4262)
  (parent 4251)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4263)
  (parent 4252)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-0) (tpm tpm-0)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik aik-0 (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-0))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4264)
  (parent 4253)
  (unrealized (0 0) (6 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (3 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4265)
  (parent 4254)
  (unrealized (0 0) (1 0) (3 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4266)
  (parent 4255)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 4 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4267)
  (parent 4256)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4268)
  (parent 4256)
  (unrealized (0 0) (1 0) (6 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4269)
  (parent 4256)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4270)
  (parent 4256)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 0)) ((6 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4271)
  (parent 4257)
  (unrealized (0 0) (1 0) (6 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4272)
  (parent 4257)
  (unrealized (0 0) (1 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4273)
  (parent 4257)
  (unrealized (0 0) (1 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce-0 (2 0)
    (ch-msg tpmconf (cat "token" nonce-0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4274)
  (parent 4259)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (contracted (tpm-2 tpmconf)) nonce (2 0)
    (ch-msg tpmconf (cat "token" nonce)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4275)
  (parent 4261)
  (unrealized (0 0) (3 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg) (pcr-id pcr-id-0 nonce-0 pcr-id-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 n v pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4276)
  (parent 4262)
  (unrealized (0 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4277)
  (parent 4263)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4278)
  (parent 4263)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 7 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-0) (6 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4279)
  (parent 4264)
  (unrealized (0 0) (6 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4280)
  (parent 4266)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4281)
  (parent 4267)
  (unrealized (0 0) (1 0) (6 0) (7 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4282)
  (parent 4267)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 7 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4283)
  (parent 4267)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4284)
  (parent 4267)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4285)
  (parent 4268)
  (unrealized (0 0) (1 0) (6 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4286)
  (parent 4268)
  (unrealized (0 0) (1 0) (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4287)
  (parent 4269)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4288)
  (parent 4270)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4289)
  (parent 4270)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4290)
  (parent 4270)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4291)
  (parent 4271)
  (unrealized (0 0) (1 0) (6 0) (7 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4292)
  (parent 4271)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (7 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (6 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4293)
  (parent 4271)
  (unrealized (0 0) (1 0) (7 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4294)
  (parent 4274)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-1 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4295)
  (parent 4275)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 7 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
  (label 4296)
  (parent 4275)
  (seen 4304 4306)
  (unrealized (0 0) (3 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4297)
  (parent 4275)
  (unrealized (0 0) (3 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4298)
  (parent 4275)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4299)
  (parent 4275)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((6 2) (4 0))
    ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 4300)
  (parent 4276)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4301)
  (parent 4277)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4302)
  (parent 4278)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4303)
  (parent 4278)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 7 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4304)
  (parent 4279)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (6 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4305)
  (parent 4279)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4306)
  (parent 4280)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4307)
  (parent 4280)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4308)
  (parent 4281)
  (unrealized (0 0) (1 0) (6 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4309)
  (parent 4282)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-2) (pt pt-2) (k k) (aik aik-1) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-2 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4310)
  (parent 4283)
  (unrealized (0 0) (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4311)
  (parent 4284)
  (unrealized (0 0) (1 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4312)
  (parent 4284)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4313)
  (parent 4284)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4314)
  (parent 4285)
  (unrealized (0 0) (1 0) (6 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4315)
  (parent 4285)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4316)
  (parent 4285)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (6 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4317)
  (parent 4285)
  (unrealized (0 0) (1 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4318)
  (parent 4287)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4319)
  (parent 4288)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 4320)
  (parent 4288)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4321)
  (parent 4288)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4322)
  (parent 4292)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4323)
  (parent 4294)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4324)
  (parent 4295)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4325)
  (parent 4296)
  (unrealized (0 0) (3 0) (7 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4326)
  (parent 4296)
  (seen 4330 4358)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4327)
  (parent 4296)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4328)
  (parent 4297)
  (seen 4342 4345 4365)
  (unrealized (0 0) (3 0))
  (comment "6 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4329)
  (parent 4297)
  (unrealized (0 0) (3 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4330)
  (parent 4298)
  (unrealized (0 0) (7 0))
  (comment "4 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4331)
  (parent 4298)
  (unrealized (0 0) (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4332)
  (parent 4298)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4333)
  (parent 4298)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 6 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4334)
  (parent 4299)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4335)
  (parent 4299)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4336)
  (parent 4299)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (7 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain")))))
  (label 4337)
  (parent 4300)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-1) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4338)
  (parent 4300)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4339)
  (parent 4301)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4340)
  (parent 4302)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4341)
  (parent 4304)
  (unrealized (7 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (6 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4342)
  (parent 4305)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (6 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4343)
  (parent 4305)
  (unrealized (0 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4344)
  (parent 4306)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4345)
  (parent 4307)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4346)
  (parent 4307)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4347)
  (parent 4309)
  (seen 4376)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 8 3 tpm-create-key 2)
    (enc "created" k pcr-id-2 current-value aik-1) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4348)
  (parent 4310)
  (seen 4377)
  (unrealized (0 0) (7 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-1)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4349)
  (parent 4311)
  (unrealized (0 0) (1 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 4350)
  (parent 4311)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4351)
  (parent 4311)
  (unrealized (0 0) (1 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (6 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4352)
  (parent 4314)
  (unrealized (0 0) (1 0) (6 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-4) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-4 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 4353)
  (parent 4315)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (current-value mesg)
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-3) (k k) (aik aik-1) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik aik-1 (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-1))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 4354)
  (parent 4316)
  (unrealized (0 0) (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4355)
  (parent 4317)
  (unrealized (0 0) (1 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4356)
  (parent 4317)
  (unrealized (0 0) (1 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4357)
  (parent 4317)
  (unrealized (0 0) (1 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4358)
  (parent 4318)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4359)
  (parent 4318)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4360)
  (parent 4320)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4361)
  (parent 4322)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4362)
  (parent 4323)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4363)
  (parent 4323)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4364)
  (parent 4324)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 8 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4365)
  (parent 4325)
  (unrealized (0 0) (3 0))
  (comment "6 in cohort - 6 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 3) (3 0)) ((8 3) (7 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4366)
  (parent 4325)
  (unrealized (0 0) (3 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4367)
  (parent 4326)
  (unrealized (0 0) (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4368)
  (parent 4326)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 6 tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4369)
  (parent 4327)
  (seen 4408)
  (unrealized (0 0) (7 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4370)
  (parent 4327)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4371)
  (parent 4327)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4372)
  (parent 4328)
  (unrealized (0 0) (3 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4373)
  (parent 4328)
  (seen 4379 4405)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4374)
  (parent 4328)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4375)
  (parent 4330)
  (unrealized (0 0) (7 0) (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4376)
  (parent 4330)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 8 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4377)
  (parent 4330)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4378)
  (parent 4330)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4379)
  (parent 4331)
  (seen 4435)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4380)
  (parent 4331)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4381)
  (parent 4332)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4382)
  (parent 4333)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4383)
  (parent 4333)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4384)
  (parent 4333)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4385)
  (parent 4334)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0))))
  (label 4386)
  (parent 4334)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4387)
  (parent 4334)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt-0 pt-1 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4388)
  (parent 4337)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (9 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4389)
  (parent 4339)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (4 0)) (pt-0 (4 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1))
    ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4390)
  (parent 4339)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4391)
  (parent 4340)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4392)
  (parent 4341)
  (unrealized (8 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4393)
  (parent 4342)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4394)
  (parent 4344)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4395)
  (parent 4345)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4396)
  (parent 4347)
  (seen 4443)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (7 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4397)
  (parent 4348)
  (seen 4444)
  (unrealized (0 0) (8 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-3) (pt pt-2) (k k) (aik aik-2) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-3 current-value aik-2))
      (load pcr-0 (cat pt-2 current-value)) (send v)))
  (label 4398)
  (parent 4350)
  (unrealized (0 0) (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-4 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4399)
  (parent 4353)
  (unrealized (0 0) (9 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 9 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-1) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4400)
  (parent 4354)
  (unrealized (0 0) (8 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4401)
  (parent 4355)
  (unrealized (0 0) (1 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4402)
  (parent 4355)
  (unrealized (0 0) (1 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (5 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (1 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (8 0)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4403)
  (parent 4355)
  (unrealized (0 0) (1 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4404)
  (parent 4358)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4405)
  (parent 4359)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4406)
  (parent 4359)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4407)
  (parent 4360)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4408)
  (parent 4361)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4409)
  (parent 4361)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4410)
  (parent 4362)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (0 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4411)
  (parent 4363)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4412)
  (parent 4363)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4413)
  (parent 4364)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (8 0)) (pt-2 (8 3))
    (nonce-0 (5 0)) (pt (5 3)) (k (3 1)) (n (2 1)) (v (2 4))))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4414)
  (parent 4364)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (contracted (tpm-2 tpmconf))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4415)
  (parent 4365)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 3) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4416)
  (parent 4365)
  (unrealized (0 0) (3 0) (8 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1)) ((8 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4417)
  (parent 4365)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0))))
  (label 4418)
  (parent 4365)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-create-key 2)
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4419)
  (parent 4365)
  (seen 4421 4429)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (3 0)
    (ch-msg tpmconf
      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4420)
  (parent 4365)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4421)
  (parent 4367)
  (seen 4435 4463 4466)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4422)
  (parent 4367)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4423)
  (parent 4368)
  (seen 4472)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4424)
  (parent 4368)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4425)
  (parent 4368)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (8 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 3) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4426)
  (parent 4369)
  (unrealized (0 0) (7 0) (8 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik akey) (tpmconf tpm tpm-0 tpm-1 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (8 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((7 1) (3 0))
    ((8 1) (7 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (7 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4427)
  (parent 4369)
  (unrealized (0 0) (8 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 3) (3 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4428)
  (parent 4372)
  (unrealized (0 0) (3 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 5 tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4429)
  (parent 4373)
  (seen 4435 4464 4467)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4430)
  (parent 4373)
  (unrealized (0 0) (8 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4431)
  (parent 4373)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4432)
  (parent 4374)
  (seen 4475)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4433)
  (parent 4374)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4434)
  (parent 4374)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4435)
  (parent 4375)
  (unrealized (0 0) (7 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-2) (pt-0 pt-3) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-2 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-2 (hash "0" n)))))
  (label 4436)
  (parent 4375)
  (unrealized (0 0) (7 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)) ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4437)
  (parent 4376)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4438)
  (parent 4377)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0)) ((8 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4439)
  (parent 4378)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4440)
  (parent 4378)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4441)
  (parent 4378)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4442)
  (parent 4379)
  (unrealized (0 0) (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4443)
  (parent 4379)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4444)
  (parent 4379)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4445)
  (parent 4379)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4446)
  (parent 4381)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4447)
  (parent 4382)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 4448)
  (parent 4382)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4449)
  (parent 4382)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4450)
  (parent 4386)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4451)
  (parent 4388)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4452)
  (parent 4391)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (5 0)) (pt (5 3)) (nonce-3 (10 0)) (pt-3 (10 3))
    (nonce-2 (8 0)) (pt-2 (8 3)) (k (3 1)) (nonce-1 (4 0)) (pt-0 (4 3))
    (v (2 4)) (n (2 1))))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4453)
  (parent 4391)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 9 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4454)
  (parent 4392)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (6 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1))
    ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4455)
  (parent 4392)
  (unrealized (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4456)
  (parent 4393)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4457)
  (parent 4394)
  (seen 4389)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (7 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4458)
  (parent 4394)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4459)
  (parent 4395)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4460)
  (parent 4396)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (9 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4461)
  (parent 4397)
  (unrealized (0 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 10 3 tpm-create-key 2)
    (enc "created" k pcr-id-3 current-value aik-2) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4462)
  (parent 4398)
  (seen 4510)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4463)
  (parent 4399)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4464)
  (parent 4399)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4465)
  (parent 4399)
  (unrealized (0 0) (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4466)
  (parent 4400)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 9 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4467)
  (parent 4400)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4468)
  (parent 4400)
  (unrealized (0 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce current-value mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 aik-2 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
    (pcr-id pcr-id-4) (pt pt-3) (k k) (aik aik-2) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik aik-2 (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n))
  (conf tpmconf)
  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-4 current-value aik-2))
      (load pcr-0 (cat pt-3 current-value)) (send v)))
  (label 4469)
  (parent 4402)
  (unrealized (0 0) (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4470)
  (parent 4404)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4471)
  (parent 4405)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4472)
  (parent 4407)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4473)
  (parent 4407)
  (unrealized (0 0) (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4474)
  (parent 4408)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4475)
  (parent 4409)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4476)
  (parent 4409)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4477)
  (parent 4410)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4478)
  (parent 4411)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4479)
  (parent 4415)
  (unrealized (8 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 3) (3 0)) ((9 3) (8 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4480)
  (parent 4416)
  (unrealized (0 0) (3 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4481)
  (parent 4417)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4482)
  (parent 4418)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4483)
  (parent 4419)
  (unrealized (0 0) (8 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0))))
  (label 4484)
  (parent 4419)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4485)
  (parent 4419)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0)) ((7 3) (3 0))
    ((8 1) (3 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 6 tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4486)
  (parent 4420)
  (unrealized (0 0) (8 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4487)
  (parent 4420)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4488)
  (parent 4420)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4489)
  (parent 4421)
  (unrealized (0 0) (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4490)
  (parent 4421)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4491)
  (parent 4423)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4492)
  (parent 4423)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4493)
  (parent 4429)
  (unrealized (0 0) (8 0) (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4494)
  (parent 4429)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4495)
  (parent 4430)
  (seen 4532 4536 4566)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4496)
  (parent 4430)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4497)
  (parent 4431)
  (seen 4543)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4498)
  (parent 4431)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4499)
  (parent 4431)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4500)
  (parent 4432)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4501)
  (parent 4432)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain")))))
  (label 4502)
  (parent 4435)
  (unrealized (0 0) (7 0) (9 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4503)
  (parent 4435)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4504)
  (parent 4435)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 9 2 alice 3)
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4505)
  (parent 4435)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (7 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4506)
  (parent 4435)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0)) ((9 2) (0 0))
    ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4507)
  (parent 4437)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4508)
  (parent 4438)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-2) (nonce nonce-1) (pt pt-2) (pt-0 pt-3) (tpm tpm-2)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
      (load pcr-0 (cat pt-2 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4509)
  (parent 4439)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1))))
  (label 4510)
  (parent 4439)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text) (n v data)
    (pt pt-0 pt-1 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 0)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4511)
  (parent 4439)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4512)
  (parent 4442)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4513)
  (parent 4443)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4514)
  (parent 4444)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4515)
  (parent 4445)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4516)
  (parent 4445)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4517)
  (parent 4445)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4518)
  (parent 4446)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce (6 0)) (pt-0 (6 3)) (nonce-1 (9 0)) (pt-2 (9 3))
    (n (2 1)) (k-0 (7 1)) (nonce-0 (5 0)) (pt (5 3)) (k (3 1))
    (v (2 4))))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4519)
  (parent 4446)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4520)
  (parent 4448)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4521)
  (parent 4450)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1)) ((5 3) (8 2))
    ((5 3) (10 2)) ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4522)
  (parent 4451)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 1) (3 0)) ((5 0) (2 0)) ((5 3) (6 1))
    ((5 3) (8 2)) ((6 2) (4 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt-0 pt-1 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4523)
  (parent 4451)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4524)
  (parent 4454)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4525)
  (parent 4456)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (6 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4526)
  (parent 4456)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((5 3) (10 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4527)
  (parent 4459)
  (seen 4452)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt-0) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (6 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4528)
  (parent 4459)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4529)
  (parent 4462)
  (seen 4590)
  (unrealized (0 0) (10 2))
  (comment "2 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4530)
  (parent 4463)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4531)
  (parent 4464)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4532)
  (parent 4465)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4533)
  (parent 4465)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4534)
  (parent 4466)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4535)
  (parent 4467)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (0 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4536)
  (parent 4468)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (6 0)) ((2 4) (0 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4537)
  (parent 4468)
  (unrealized (0 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-decrypt)
  (operation encryption-test (displaced 11 3 tpm-create-key 2)
    (enc "created" k pcr-id-4 current-value aik-2) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4538)
  (parent 4469)
  (unrealized (0 0) (10 2))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4539)
  (parent 4470)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (10 1)) ((2 2) (6 0)) ((2 4) (7 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4540)
  (parent 4470)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0)) ((8 3) (7 2))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4541)
  (parent 4471)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4542)
  (parent 4472)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain")))))
  (label 4543)
  (parent 4473)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4544)
  (parent 4473)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4545)
  (parent 4474)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4546)
  (parent 4475)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (10 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4547)
  (parent 4477)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4548)
  (parent 4477)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0)) ((8 3) (1 0))
    ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4549)
  (parent 4478)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (8 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4550)
  (parent 4479)
  (unrealized (9 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4551)
  (parent 4481)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4552)
  (parent 4482)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4553)
  (parent 4483)
  (seen 4566)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 4 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4554)
  (parent 4483)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4555)
  (parent 4484)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4556)
  (parent 4485)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4557)
  (parent 4485)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4558)
  (parent 4485)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4559)
  (parent 4486)
  (unrealized (0 0) (8 0) (9 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0))))
  (label 4560)
  (parent 4486)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (9 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (8 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (8 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4561)
  (parent 4486)
  (unrealized (0 0) (9 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4562)
  (parent 4489)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4563)
  (parent 4490)
  (seen 4605)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4564)
  (parent 4490)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4565)
  (parent 4490)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4566)
  (parent 4493)
  (unrealized (0 0) (8 0))
  (comment "5 in cohort - 5 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4567)
  (parent 4493)
  (unrealized (0 0) (8 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4568)
  (parent 4494)
  (seen 4606)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4569)
  (parent 4494)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4570)
  (parent 4494)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 4571)
  (parent 4495)
  (unrealized (0 0) (8 0) (10 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4572)
  (parent 4495)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4573)
  (parent 4497)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4574)
  (parent 4497)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-4) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 3) (7 0)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4575)
  (parent 4502)
  (unrealized (0 0) (7 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4576)
  (parent 4503)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4577)
  (parent 4504)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4578)
  (parent 4505)
  (unrealized (9 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 6 tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4579)
  (parent 4506)
  (unrealized (0 0) (9 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4580)
  (parent 4506)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4581)
  (parent 4506)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (10 2)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4582)
  (parent 4507)
  (seen 4457)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-2)
    (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-2 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4583)
  (parent 4507)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4584)
  (parent 4508)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((7 1) (3 0)) ((8 2) (0 0))
    ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4585)
  (parent 4508)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 text) (n v data)
    (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 n v pt pt-0 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4586)
  (parent 4510)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4587)
  (parent 4513)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4588)
  (parent 4514)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4589)
  (parent 4515)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4590)
  (parent 4515)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4591)
  (parent 4515)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4592)
  (parent 4520)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 1)) ((6 3) (10 2)) ((7 1) (3 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4593)
  (parent 4521)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 1)) ((7 1) (3 0))
    ((8 2) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4594)
  (parent 4521)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 pcr-id-2 nonce-1 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-1) (pt pt-0) (aik aik-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 4) (6 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (7 2)) ((4 3) (9 2))
    ((5 2) (3 0)) ((6 3) (1 0)) ((7 3) (6 2)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt-0 pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-0 (cat "quote" pcr-id-1 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-1 (hash "0" n) nonce aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4595)
  (parent 4522)
  (unrealized)
  (shape)
  (maps
    ((0 1 2)
      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
  (origs (nonce-0 (4 0)) (pt-0 (4 3)) (nonce-2 (9 0)) (pt-2 (9 3))
    (nonce-1 (7 0)) (pt-1 (7 3)) (k (3 1)) (v (2 4)) (n (2 1))))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (3 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4596)
  (parent 4524)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4597)
  (parent 4525)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (6 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4598)
  (parent 4529)
  (unrealized (0 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4599)
  (parent 4530)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1)) ((8 2) (6 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4600)
  (parent 4531)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4601)
  (parent 4532)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4602)
  (parent 4534)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0)) ((8 3) (1 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4603)
  (parent 4535)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4604)
  (parent 4536)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 4 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4605)
  (parent 4538)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 11 7 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v)))
  (label 4606)
  (parent 4538)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4607)
  (parent 4538)
  (unrealized (0 0) (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4608)
  (parent 4539)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4609)
  (parent 4541)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (7 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 3) (7 2)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4610)
  (parent 4541)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0)) ((8 2) (7 0))
    ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4611)
  (parent 4542)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4612)
  (parent 4543)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4613)
  (parent 4545)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4614)
  (parent 4545)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4615)
  (parent 4546)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4616)
  (parent 4547)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (8 0)) ((2 4) (10 0)) ((3 1) (2 3))
    ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1))
    ((5 3) (9 2)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4617)
  (parent 4549)
  (seen 4522)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 2) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4618)
  (parent 4549)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 10 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4619)
  (parent 4550)
  (seen 4454)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-2) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (8 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)) ((10 3) (9 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (9 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4620)
  (parent 4550)
  (unrealized (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4621)
  (parent 4551)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4622)
  (parent 4551)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (3 0))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4623)
  (parent 4552)
  (seen 4457)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4624)
  (parent 4552)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 4625)
  (parent 4553)
  (unrealized (0 0) (8 0) (10 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4626)
  (parent 4553)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4627)
  (parent 4553)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4628)
  (parent 4553)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0)) ((8 1) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4629)
  (parent 4555)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4630)
  (parent 4556)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4631)
  (parent 4556)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4632)
  (parent 4556)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4633)
  (parent 4560)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4634)
  (parent 4563)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4635)
  (parent 4563)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain")))))
  (label 4636)
  (parent 4566)
  (unrealized (0 0) (8 0) (10 2))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4637)
  (parent 4566)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1))))
  (label 4638)
  (parent 4566)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 10 2 alice 3)
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4639)
  (parent 4566)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test
    (added-listener (cat (hash "0" n) "obtain"))
    (hash (hash "0" n) "obtain") (8 0)
    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain")))
    (ch-msg pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4640)
  (parent 4566)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4641)
  (parent 4568)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4642)
  (parent 4568)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4643)
  (parent 4571)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4644)
  (parent 4572)
  (seen 4677)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4645)
  (parent 4572)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4646)
  (parent 4572)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (9 1))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4647)
  (parent 4576)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4648)
  (parent 4577)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0)) ((8 3) (7 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (9 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4649)
  (parent 4578)
  (unrealized (10 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-3) (nonce nonce-2) (pt pt-3) (pt-0 pt-4) (tpm tpm-3)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (10 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 3) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
      (load pcr-0 (cat pt-3 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4650)
  (parent 4579)
  (unrealized (0 0) (9 0) (10 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1))))
  (label 4651)
  (parent 4579)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (10 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (9 0))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 1) (9 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (9 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4652)
  (parent 4579)
  (unrealized (0 0) (10 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (7 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4653)
  (parent 4584)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0)) ((8 1) (7 0))
    ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4654)
  (parent 4586)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4655)
  (parent 4587)
  (seen 4527)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4656)
  (parent 4587)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4657)
  (parent 4588)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4658)
  (parent 4588)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4659)
  (parent 4590)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4660)
  (parent 4592)
  (seen 4593)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4661)
  (parent 4592)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-0) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 1)) ((6 3) (9 2)) ((7 2) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (7 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4662)
  (parent 4593)
  (seen 4595)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (6 0)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4663)
  (parent 4596)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (6 2))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4664)
  (parent 4597)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4665)
  (parent 4599)
  (seen 4621)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4666)
  (parent 4599)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4667)
  (parent 4600)
  (seen 4582)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4668)
  (parent 4600)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (8 1))
    ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4669)
  (parent 4601)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4670)
  (parent 4602)
  (seen 4715)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4671)
  (parent 4602)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4672)
  (parent 4603)
  (seen 4584)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (11 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4673)
  (parent 4603)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4674)
  (parent 4604)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4675)
  (parent 4605)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4676)
  (parent 4606)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain")))))
  (label 4677)
  (parent 4607)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4678)
  (parent 4607)
  (unrealized (0 0) (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (3 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4679)
  (parent 4608)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (3 0)) ((4 3) (7 2))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (4 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4680)
  (parent 4609)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (11 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4681)
  (parent 4611)
  (seen 4613)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4682)
  (parent 4611)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0)) ((7 1) (6 0))
    ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4683)
  (parent 4612)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (6 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4684)
  (parent 4613)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 1)) ((5 3) (9 2)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4685)
  (parent 4615)
  (seen 4593)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 2) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4686)
  (parent 4615)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4687)
  (parent 4616)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0)) ((6 3) (5 2))
    ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((2 2) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4688)
  (parent 4621)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4689)
  (parent 4625)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4690)
  (parent 4626)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4691)
  (parent 4627)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4692)
  (parent 4628)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4693)
  (parent 4628)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4694)
  (parent 4628)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4695)
  (parent 4629)
  (seen 4539)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4696)
  (parent 4629)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4697)
  (parent 4631)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4698)
  (parent 4633)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-5) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 3) (8 0))
    ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-5 (hash (hash "0" n) "obtain"))))
    ((send tpm-5 (cat "token" nonce-4))
      (recv tpm-5 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4699)
  (parent 4636)
  (unrealized (0 0) (8 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4700)
  (parent 4637)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4701)
  (parent 4638)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4702)
  (parent 4639)
  (unrealized (10 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (10 0))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (displaced 11 6 tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain"))))
  (label 4703)
  (parent 4640)
  (unrealized (0 0) (10 0))
  (comment "3 in cohort - 3 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4704)
  (parent 4640)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4705)
  (parent 4640)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4706)
  (parent 4644)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4707)
  (parent 4644)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4708)
  (parent 4647)
  (seen 4621)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (9 1)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4709)
  (parent 4647)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4710)
  (parent 4648)
  (seen 4623)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (7 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4711)
  (parent 4648)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (9 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 11 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4712)
  (parent 4649)
  (seen 4584)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-5) (pt-0 pt-4) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (7 0)) ((2 4) (4 0))
    ((2 4) (9 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 2) (0 0)) ((10 3) (9 1)) ((11 3) (10 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (10 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4713)
  (parent 4649)
  (unrealized (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4714)
  (parent 4651)
  (unrealized (11 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4715)
  (parent 4653)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (9 1)) ((6 3) (11 2)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4716)
  (parent 4654)
  (seen 4613)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt-0) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-3) (pt-0 pt-2) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-3) (tpm tpm-5)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (9 1)) ((7 1) (3 0))
    ((8 1) (7 0)) ((9 2) (8 0)) ((10 2) (0 0)) ((11 3) (10 1))
    ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr-0 (cat pt-3 (hash "0" n)))
      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
  (label 4717)
  (parent 4654)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization deleted (8 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4718)
  (parent 4657)
  (seen 4680)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4719)
  (parent 4659)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4720)
  (parent 4663)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 0)) ((4 3) (6 2))
    ((4 3) (7 0)) ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4721)
  (parent 4664)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (10 2)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 3) (8 1)) ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4722)
  (parent 4669)
  (seen 4655)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (10 2)) ((6 1) (3 0))
    ((7 3) (8 1)) ((8 2) (6 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4723)
  (parent 4669)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (8 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 2)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4724)
  (parent 4674)
  (seen 4657)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (12 1)) ((2 2) (6 0)) ((2 4) (8 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 3) (1 0)) ((9 3) (8 2)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4725)
  (parent 4674)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4726)
  (parent 4675)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0)) ((7 3) (6 0))
    ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4727)
  (parent 4676)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4728)
  (parent 4677)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4729)
  (parent 4679)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (2 3)) ((4 3) (7 2))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4730)
  (parent 4680)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (9 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (8 1)) ((5 3) (10 2)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4731)
  (parent 4683)
  (seen 4660)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (9 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 1)) ((5 3) (10 2)) ((6 1) (3 0))
    ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (1 0)) ((10 3) (9 2))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-1)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4732)
  (parent 4683)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (3 0)) ((4 3) (2 3)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4733)
  (parent 4684)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1))
    ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0))
    ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4734)
  (parent 4687)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4735)
  (parent 4688)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4736)
  (parent 4690)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4737)
  (parent 4691)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4738)
  (parent 4692)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 4739)
  (parent 4692)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4740)
  (parent 4692)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4741)
  (parent 4697)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1)) ((6 3) (11 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4742)
  (parent 4698)
  (seen 4613)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 2) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4743)
  (parent 4698)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4744)
  (parent 4700)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4745)
  (parent 4701)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((7 3) (3 0))
    ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0)) ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (10 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4746)
  (parent 4702)
  (unrealized (11 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-4) (nonce nonce-3) (pt pt-4) (pt-0 pt-5) (tpm tpm-4)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (11 1)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 3) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-extend-enc 4)
    (hash "0" n) (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4 (cat "extend" pcr-id-4 n (hash pcr-id-4 n nonce-3)))
      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4747)
  (parent 4703)
  (unrealized (0 0) (10 0) (11 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-strand tpm-quote 3) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1))))
  (label 4748)
  (parent 4703)
  (unrealized (0 0))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 akey) (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (deflistener (cat "0" n))
  (precedes ((2 1) (6 1)) ((2 1) (11 0)) ((2 2) (3 0)) ((2 4) (0 0))
    ((2 4) (4 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (10 0)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 1) (10 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 pt-3 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain"))
  (conf tpmconf)
  (operation encryption-test (added-listener (cat "0" n)) (hash "0" n)
    (10 0) (ch-msg pcr (cat pt-0 (hash "0" n))))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv (cat "0" n)) (send (cat "0" n))))
  (label 4749)
  (parent 4703)
  (unrealized (0 0) (11 0))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((7 1) (3 0))
    ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0)) ((11 2) (0 0))
    ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))) (11 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4750)
  (parent 4714)
  (unrealized (12 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (3 0)) ((5 3) (2 3))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4751)
  (parent 4715)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((6 3) (12 2))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4752)
  (parent 4719)
  (seen 4685)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4753)
  (parent 4719)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (2 3)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4754)
  (parent 4720)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (5 1)) ((4 3) (6 2))
    ((4 3) (7 0)) ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4755)
  (parent 4721)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4756)
  (parent 4726)
  (seen 4742)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4757)
  (parent 4726)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (12 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4758)
  (parent 4727)
  (seen 4716)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-2) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4759)
  (parent 4727)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((6 1) (3 0))
    ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0)) ((10 3) (1 0))
    ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4760)
  (parent 4728)
  (unrealized (13 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (3 0)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4761)
  (parent 4729)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 0)) ((4 3) (7 2))
    ((4 3) (8 0)) ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0))
    ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4762)
  (parent 4730)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (2 3)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4763)
  (parent 4733)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4764)
  (parent 4734)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (2 3)) ((6 0) (2 0)) ((6 3) (5 2))
    ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1)) ((8 2) (3 0))
    ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4765)
  (parent 4735)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4766)
  (parent 4736)
  (seen 4665)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4767)
  (parent 4736)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4768)
  (parent 4737)
  (seen 4670)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4769)
  (parent 4737)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4770)
  (parent 4739)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4771)
  (parent 4741)
  (seen 4681)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 1) (8 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4772)
  (parent 4741)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4773)
  (parent 4744)
  (seen 4708)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt-3) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (10 1)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4774)
  (parent 4744)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (12 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4775)
  (parent 4745)
  (seen 4710)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-4)
    (pt pt) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (10 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (8 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-4 (hash (hash "0" n) "obtain") nonce
          aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4776)
  (parent 4745)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (8 0)) ((2 4) (4 0)) ((2 4) (10 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3
    pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 12 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4777)
  (parent 4746)
  (seen 4712)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars
    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 pcr-id-3
      nonce-2 pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-6) (pt-0 pt-5) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (12 1)) ((2 2) (8 0)) ((2 4) (4 0))
    ((2 4) (10 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 2) (0 0))
    ((11 3) (10 1)) ((12 3) (11 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (11 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-2))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4778)
  (parent 4746)
  (unrealized (12 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (rule genStV-if-hashed-tpm-quote)
  (operation encryption-test (added-strand tpm-quote 3)
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
    (0 0))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))))
  (label 4779)
  (parent 4748)
  (unrealized (12 1))
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (11 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1)) ((6 3) (12 2))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k
    k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 13 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4780)
  (parent 4750)
  (seen 4742)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt-0) (aik aik-1) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-4) (pt-0 pt-3) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-5) (nonce nonce-4) (pt pt-5) (pt-0 pt-4) (tpm tpm-6)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (13 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (11 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (7 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (8 2)) ((6 3) (10 1))
    ((7 1) (3 0)) ((8 3) (7 0)) ((9 1) (7 0)) ((10 2) (9 0))
    ((11 2) (0 0)) ((12 3) (11 1)) ((13 3) (12 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash "0" n))) (12 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr-0 (cat pt-4 (hash "0" n)))
      (stor pcr-0 (cat pt-3 (hash (hash "0" n) "refuse"))))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6 (cat "extend" pcr-id-5 n (hash pcr-id-5 n nonce-4)))
      (load pcr-0 (cat pt-5 "0")) (stor pcr-0 (cat pt-4 (hash "0" n)))))
  (label 4781)
  (parent 4750)
  (unrealized (13 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (2 3)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2)) ((7 1) (3 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4782)
  (parent 4751)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 0)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4783)
  (parent 4754)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (3 0)) ((2 4) (5 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 2)) ((4 3) (7 0))
    ((4 3) (8 2)) ((5 3) (1 0)) ((6 3) (5 2)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (5 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4784)
  (parent 4755)
  (seen 4413)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (10 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2)) ((5 3) (13 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0))
    ((10 3) (1 0)) ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 14 5 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4785)
  (parent 4760)
  (seen 4752)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-1) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-3) (pt pt) (aik aik-1) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-3) (k k) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt) (pt-0 pt-3) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (5 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (10 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (3 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 2)) ((5 3) (9 1)) ((5 3) (11 2))
    ((6 1) (3 0)) ((7 3) (6 0)) ((8 1) (6 0)) ((9 2) (8 0))
    ((10 3) (1 0)) ((11 3) (10 2)) ((12 2) (0 0)) ((13 3) (12 1))
    ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-1 (cat "token" nonce-2))
      (recv tpm-1
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-2 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-3 (hash "0" n) nonce aik-1)))
    ((recv tpm-3 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-3 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-4 (cat "token" nonce-3))
      (recv tpm-4
        (cat "extend" pcr-id-4 "obtain"
          (hash pcr-id-4 "obtain" nonce-3)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4786)
  (parent 4760)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (2 3)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4787)
  (parent 4761)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (6 1)) ((4 3) (7 2))
    ((4 3) (8 0)) ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0))
    ((7 3) (6 2)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4788)
  (parent 4762)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 3)) ((4 3) (7 0)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2))
    ((6 2) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4789)
  (parent 4763)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4790)
  (parent 4764)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4791)
  (parent 4765)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4792)
  (parent 4770)
  (unrealized (13 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0)) ((10 1) (8 0))
    ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))) (12 1))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4793)
  (parent 4779)
  (unrealized (13 2))
  (comment "2 in cohort - 2 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (2 3)) ((5 3) (4 0))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4794)
  (parent 4782)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 0)) ((4 3) (6 1)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 0)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4795)
  (parent 4783)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4796)
  (parent 4787)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-0) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-1) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-1) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (4 1)) ((2 2) (5 0)) ((2 4) (6 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (2 0)) ((4 3) (7 2)) ((4 3) (8 0))
    ((4 3) (9 2)) ((5 1) (3 0)) ((6 3) (1 0)) ((7 3) (6 2))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-1 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-0 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-1 (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-1 (hash (hash "0" n) "obtain"))))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4797)
  (parent 4788)
  (seen 4518)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 0)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4798)
  (parent 4789)
  (seen 4790)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4799)
  (parent 4790)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4800)
  (parent 4791)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((6 3) (13 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4801)
  (parent 4792)
  (seen 4756)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (3 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (11 1)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1))
    ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4802)
  (parent 4792)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 text) (n v data)
    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 chan)
    (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-0) (pt-0 pt-4) (tpm tpm-6) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (12 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2)) ((6 3) (11 1))
    ((6 3) (13 2)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 n v pt pt-0 pt-2
    pt-3 pt-4 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (displaced 14 6 tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-4 (hash (hash "0" n) "refuse")))))
  (label 4803)
  (parent 4793)
  (seen 4780)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      nonce-3 pcr-id-4 pcr-id-5 nonce-4 pcr-id-6 nonce-5 text)
    (n v data) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
    (k aik k-0 aik-0 aik-1 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 tpm-6 tpm-7 chan)
    (pcr pcr-0 locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-3) (pcr pcr))
  (deflistener (cat (hash "0" n) "obtain"))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-4) (pt pt-0) (aik aik-1) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-4) (aik aik) (tpm tpm-5) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-5) (nonce nonce-4)
    (pt pt-5) (pt-0 pt-4) (tpm tpm-6) (pcr pcr-0))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-6) (nonce nonce-5) (pt pt-6) (pt-0 pt-5) (tpm tpm-7)
    (pcr pcr-0))
  (precedes ((2 1) (6 1)) ((2 1) (14 1)) ((2 2) (3 0)) ((2 4) (4 0))
    ((2 4) (12 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (9 2))
    ((6 3) (11 1)) ((7 3) (3 0)) ((8 1) (3 0)) ((9 3) (8 0))
    ((10 1) (8 0)) ((11 2) (10 0)) ((12 2) (0 0)) ((13 3) (12 1))
    ((14 3) (13 2)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 nonce-4 nonce-5 n v pt pt-0
    pt-2 pt-3 pt-4 pt-5 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation channel-test (added-strand tpm-extend-enc 4)
    (ch-msg pcr-0 (cat pt-5 (hash "0" n))) (13 2))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((send tpm-3 (cat "token" nonce-3))
      (recv tpm-3
        (cat "extend" pcr-id-3 "obtain"
          (hash pcr-id-3 "obtain" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "obtain"))))
    ((recv (cat (hash "0" n) "obtain"))
      (send (cat (hash "0" n) "obtain")))
    ((recv tpm-4 (cat "quote" pcr-id-4 nonce))
      (load pcr (cat pt-0 (hash "0" n)))
      (send (enc "quote" pcr-id-4 (hash "0" n) nonce aik-1)))
    ((recv tpm-5 (cat "quote" pcr-id (enc v k)))
      (load pcr-0 (cat pt-4 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-6 (cat "token" nonce-4))
      (recv tpm-6
        (cat "extend" pcr-id-5 "refuse"
          (hash pcr-id-5 "refuse" nonce-4)))
      (load pcr-0 (cat pt-5 (hash "0" n)))
      (stor pcr-0 (cat pt-4 (hash (hash "0" n) "refuse"))))
    ((send tpm-7 (cat "token" nonce-5))
      (recv tpm-7 (cat "extend" pcr-id-6 n (hash pcr-id-6 n nonce-5)))
      (load pcr-0 (cat pt-6 "0")) (stor pcr-0 (cat pt-5 (hash "0" n)))))
  (label 4804)
  (parent 4793)
  (unrealized (14 1))
  (dead)
  (comment "empty cohort"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 0)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4805)
  (parent 4794)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 0)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4806)
  (parent 4795)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (7 1)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4807)
  (parent 4796)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4808)
  (parent 4799)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4809)
  (parent 4800)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 0)) ((5 3) (4 1))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4810)
  (parent 4805)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 1)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4811)
  (parent 4806)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4812)
  (parent 4807)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4813)
  (parent 4808)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4814)
  (parent 4809)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 1)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4815)
  (parent 4810)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (6 1)) ((4 3) (6 2)) ((4 3) (7 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4816)
  (parent 4811)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 1)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4817)
  (parent 4812)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4818)
  (parent 4813)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2)) ((5 3) (9 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4819)
  (parent 4814)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 0) (4 1)) ((5 3) (4 2))
    ((5 3) (8 0)) ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0))
    ((6 3) (9 2)) ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4820)
  (parent 4815)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4821)
  (parent 4816)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (7 1)) ((4 3) (7 2)) ((4 3) (8 0))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 1)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4822)
  (parent 4817)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4823)
  (parent 4818)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 0)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4824)
  (parent 4819)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 0)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (4 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4825)
  (parent 4820)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (6 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4826)
  (parent 4821)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 1)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4827)
  (parent 4822)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4828)
  (parent 4823)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 0)) ((5 3) (4 2)) ((5 3) (9 1))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4829)
  (parent 4824)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (3 0)) ((6 3) (5 2)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4830)
  (parent 4825)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (7 0)) ((4 3) (6 2)) ((4 3) (7 1))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (8 2))
    ((6 3) (1 0)) ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4831)
  (parent 4826)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 0)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4832)
  (parent 4827)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (8 1)) ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4833)
  (parent 4828)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (9 1)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4834)
  (parent 4829)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (2 3)) ((6 3) (5 2)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (3 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4835)
  (parent 4830)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (7 0)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4836)
  (parent 4831)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (8 0)) ((4 3) (7 2)) ((4 3) (8 1))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 0)) ((5 3) (9 2))
    ((6 1) (3 0)) ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4837)
  (parent 4832)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4838)
  (parent 4833)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (9 1)) ((5 3) (0 0)) ((5 3) (4 2))
    ((6 0) (2 0)) ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2))
    ((7 3) (8 1)) ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4839)
  (parent 4834)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt-0) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 2) (7 0)) ((2 4) (4 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((5 3) (8 0))
    ((6 0) (2 0)) ((6 3) (4 0)) ((6 3) (5 2)) ((6 3) (9 2))
    ((7 1) (3 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((6 3) (2 3)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-0))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4840)
  (parent 4835)
  (seen 4827)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (6 2)) ((4 3) (7 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (7 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4841)
  (parent 4836)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 0)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4842)
  (parent 4837)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 pcr-id-3 nonce-2
      text) (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce) (current-value (hash "0" n))
    (pcr-id pcr-id-2) (pt pt) (aik aik-0) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-3) (nonce nonce-2)
    (pt pt) (pt-0 pt-2) (tpm tpm-4) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 4) (7 0)) ((2 4) (8 0)) ((3 1) (2 3))
    ((4 0) (0 0)) ((4 3) (7 2)) ((5 0) (2 0)) ((5 3) (4 2))
    ((5 3) (6 1)) ((5 3) (9 2)) ((6 2) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-1))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-1 (cat "quote" pcr-id-2 nonce))
      (load pcr (cat pt (hash "0" n)))
      (send (enc "quote" pcr-id-2 (hash "0" n) nonce aik-0)))
    ((recv tpm-2 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-3 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-4 (cat "token" nonce-2))
      (recv tpm-4
        (cat "extend" pcr-id-3 "refuse"
          (hash pcr-id-3 "refuse" nonce-2)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4843)
  (parent 4838)
  (seen 4595)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 3) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 0) (9 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4844)
  (parent 4839)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (7 1)) ((4 3) (0 0)) ((4 3) (6 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0))
    ((7 2) (0 0)) ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4845)
  (parent 4841)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (7 2)) ((4 3) (8 1)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (8 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4846)
  (parent 4842)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (nonce mesg)
    (pcr-id pcr-id-0 nonce-0 pcr-id-1 nonce-1 pcr-id-2 nonce-2 pcr-id-3
      pcr-id-4 nonce-3 text) (n v data) (pt pt-0 pt-1 pt-2 pt-3 pval)
    (k aik aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 tpm-5 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce-0) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-1)
    (pt pt-0) (pt-0 pt) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce-0) (pt pt-1) (pt-0 pt-0)
    (tpm tpmconf) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-2)
    (pt pt-0) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-quote 3 (nonce nonce)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-3)
    (pt pt-2) (aik aik-0) (tpm tpm-3) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-3) (aik aik) (tpm tpm-4) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-4) (nonce nonce-3)
    (pt pt-0) (pt-0 pt-3) (tpm tpm-5) (pcr pcr))
  (precedes ((2 1) (6 1)) ((2 4) (4 0)) ((2 4) (9 0)) ((3 1) (2 3))
    ((4 3) (1 0)) ((5 0) (0 0)) ((5 3) (4 2)) ((6 0) (2 0))
    ((6 3) (5 2)) ((6 3) (7 2)) ((6 3) (10 2)) ((7 3) (8 1))
    ((8 2) (3 0)) ((9 2) (0 0)) ((10 3) (9 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce-0 nonce-1 nonce-2 nonce-3 n v pt pt-0 pt-2 pt-3 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((5 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce-0))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
    ((send tpm-1 (cat "token" nonce-1))
      (recv tpm-1
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-1)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce-0))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
    ((send tpm-2 (cat "token" nonce-2))
      (recv tpm-2
        (cat "extend" pcr-id-2 "obtain"
          (hash pcr-id-2 "obtain" nonce-2)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "obtain"))))
    ((recv tpm-3 (cat "quote" pcr-id-3 nonce))
      (load pcr (cat pt-2 (hash (hash "0" n) "obtain")))
      (send
        (enc "quote" pcr-id-3 (hash (hash "0" n) "obtain") nonce
          aik-0)))
    ((recv tpm-4 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-3 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-5 (cat "token" nonce-3))
      (recv tpm-5
        (cat "extend" pcr-id-4 "refuse"
          (hash pcr-id-4 "refuse" nonce-3)))
      (load pcr (cat pt-0 (hash "0" n)))
      (stor pcr (cat pt-3 (hash (hash "0" n) "refuse")))))
  (label 4847)
  (parent 4844)
  (seen 4452)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 3) (0 0)) ((4 3) (6 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (7 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4848)
  (parent 4845)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (8 1)) ((4 3) (0 0)) ((4 3) (7 2))
    ((5 0) (2 0)) ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0))
    ((7 3) (1 0)) ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4849)
  (parent 4846)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-2) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (3 0)) ((2 4) (6 0)) ((2 4) (7 0))
    ((3 1) (2 3)) ((4 0) (0 0)) ((4 3) (6 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (8 2)) ((6 3) (1 0)) ((7 2) (0 0))
    ((8 3) (7 1)))
  (non-orig aik (invk k))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm (cat "token" nonce-0))
      (recv tpm
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpm-0 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-2 (cat "token" nonce-1))
      (recv tpm-2
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4850)
  (parent 4848)
  (seen 4413)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 3) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 0) (8 1)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4851)
  (parent 4849)
  (unrealized)
  (comment "1 in cohort - 1 not yet seen"))

(defskeleton envelope-plus-2
  (vars (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
    (n v data) (pt pt-0 pt-1 pt-2 pval) (k aik k-0 aik-0 akey)
    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
  (deflistener
    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
  (deflistener v)
  (defstrand alice 5 (pcr-id pcr-id-0) (nonce nonce) (n n) (v v) (k k)
    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
  (defstrand tpm-extend-enc 4 (value "obtain")
    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
    (pt pt) (pt-0 pt-0) (tpm tpm-0) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
    (pcr-id pcr-id-0) (nonce nonce) (pt pt-1) (pt-0 pt) (tpm tpmconf)
    (pcr pcr))
  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
    (pcr-id pcr-id-0) (k k-0) (aik aik-0) (tpm tpmconf))
  (defstrand tpm-decrypt 4 (m v)
    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0)
    (pt pt-0) (k k) (aik aik) (tpm tpm-1) (pcr pcr))
  (defstrand tpm-quote 3 (nonce (enc v k))
    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
    (pt pt-2) (aik aik) (tpm tpm-2) (pcr pcr))
  (defstrand tpm-extend-enc 4 (value "refuse")
    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
    (pt pt) (pt-0 pt-2) (tpm tpm-3) (pcr pcr))
  (precedes ((2 1) (5 1)) ((2 2) (6 0)) ((2 4) (7 0)) ((2 4) (8 0))
    ((3 1) (2 3)) ((4 0) (0 0)) ((4 3) (7 2)) ((5 0) (2 0))
    ((5 3) (4 2)) ((5 3) (9 2)) ((6 1) (3 0)) ((7 3) (1 0))
    ((8 2) (0 0)) ((9 3) (8 1)))
  (non-orig aik (invk k) (invk k-0))
  (uniq-orig nonce nonce-0 nonce-1 n v pt pt-0 pt-2 k k-0)
  (genStV (hash "0" n) (hash (hash "0" n) "obtain")
    (hash (hash "0" n) "refuse"))
  (conf tpmconf)
  (operation generalization weakened ((4 3) (0 0)))
  (traces
    ((recv
       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik))) ((recv v) (send v))
    ((recv tpmconf (cat "token" nonce))
      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (send tpmconf
        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (send (enc v k)))
    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
    ((send tpm-0 (cat "token" nonce-0))
      (recv tpm-0
        (cat "extend" pcr-id-1 "obtain"
          (hash pcr-id-1 "obtain" nonce-0)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-0 (hash (hash "0" n) "obtain"))))
    ((send tpmconf (cat "token" nonce))
      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
      (load pcr (cat pt-1 "0")) (stor pcr (cat pt (hash "0" n))))
    ((recv tpmconf
       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
      (send
        (enc "created" k-0 pcr-id-0 (hash (hash "0" n) "obtain")
          aik-0)))
    ((recv tpm-1 (cat "decrypt" (enc v k)))
      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
      (load pcr (cat pt-0 (hash (hash "0" n) "obtain"))) (send v))
    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
      (send
        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
          aik)))
    ((send tpm-3 (cat "token" nonce-1))
      (recv tpm-3
        (cat "extend" pcr-id-2 "refuse"
          (hash pcr-id-2 "refuse" nonce-1)))
      (load pcr (cat pt (hash "0" n)))
      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse")))))
  (label 4852)
  (parent 4851)
  (seen 4518)
  (unrealized)
  (comment "1 in cohort - 0 not yet seen"))

(comment "Nothing left to do")
